Python无法打印客户端IP或客户端主机名

时间:2012-11-29 12:27:45

标签: python centos samba

如何打印删除共享文件夹中文件的客户端PC的IP或主机名?此代码正常工作,但它只打印我自己的IP和主机名,而不是删除共享文件夹中文件的其他PC。 我正在使用 Centos 6.3 。我使用 Samba 来共享我的文件夹。我使用 Python 2.7 PYinotify 脚本。< / p>

这是我的代码

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()

1 个答案:

答案 0 :(得分:1)

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

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

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