【问题标题】:Python cannot print the client IP or client hostnamePython 无法打印客户端 IP 或客户端主机名
【发布时间】:2012-11-29 12:27:45
【问题描述】:

如何打印删除共享文件夹中文件的客户端电脑的 IP 或主机名?此代码有效,但它只打印我自己的 IP 和主机名,而不是删除共享文件夹中文件的另一台电脑。 我使用 Centos 6.3。我使用 Samba 来共享我的文件夹。我使用 Python 2.7PYinotify 脚本。

这是我的代码

import pyinotify

wm = pyinotify.WatchManager()

mask = pyinotify.IN_DELETE | pyinotify.IN_CREATE

class EventHandler(pyinotify.ProcessEvent):

    def process_IN_CREATE(self, event): 
    print "",now.strftime("%b-%d-%Y @ %I:%M %p"),"  "   ,socket.gethostname()," ","Create ","  ",event.name,"  ",event.path

    def process_IN_DELETE(self, event):
    print "",now.strftime("%b-%d-%Y @ %I:%M %p"),"  "    ,socket.gethostname()," ","Shift+Del","",event.name," ",event.path

handler = EventHandler()

notifier = pyinotify.Notifier(wm, handler)

wdd = wm.add_watch('/echoshare', mask, rec=True)

auto_add = '/echoshare'

notifier.loop()

【问题讨论】:

  • StackOverflow 是针对特定的编程问题的——你在实现这个时遇到了什么问题?请发布您当前的代码以及您得到的任何错误或意外输出。
  • 我是新手,我无法发布我的代码。唯一的问题是如何获取访问我文件的计算机的 IP 地址或主机名?我正在使用 pyinotify。当我在这里学习如何编辑时,我会发布我的脚本。
  • 感谢您发布您当前的代码,现在您需要告诉我们出了什么问题 - 您是否收到错误消息?它不工作吗?如果是这样,它怎么不起作用?你得到了什么出乎你意料的输出?
  • 实际上它的工作..但问题是脚本记录自己的 IP 或主机名而不是在共享文件夹上删除的其他计算机。谢谢先生的回复。
  • 这是你的全部代码吗? domainnamedomainname4 定义在哪里?

标签: python centos samba


【解决方案1】:

我认为您误解了 (py)inotify 是什么。 这是一种监视文件系统事件的方法,您将获得有关 samba 服务器在 本地 文件系统上完成的操作的信息。

如果您查看inotify documentation,您会注意到 inotify_event 结构不包含有关用户执行操作的任何信息。

我想对您的问题最简单的解决方案是在您的 samba 服务器上启用 event logging 并解析生成的事件以获取您想要的信息

【讨论】:

  • +1,我得出了同样的结论。 OP 也可能会发现 this link 很有用。它描述了在用户创建/重命名/删除文件时使用full_audit 模块记录用户名、IP 等内容。我没有 Samba 经验,但我怀疑它可能会有所帮助。
  • 我知道使用编辑过的 smb.conf 记录事件,但问题是当你删除一个 500kb 的文件时,它会记录 10 次,因为它分为 50kb/log..这个问题为什么我的主管放弃这个任务
  • @Kevin 它认为这正是 OP 想要的 +1 它是基于 syslog 的,可以从多个服务器记录事件
  • 我使用这 2 个日志记录事件,但有 1 个问题.... 第一个。 SMB.conf = 如果您删除超过 50kb 的文件 100kb = 2 个日志但相同的日志,则会记录很多次。第二。 PYinotify = 无法记录用户执行任务。如果您可以给我任何可以记录删除共享文件夹中文件的用户的应用程序,这可以让我开心
猜你喜欢
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多