#!/usr/bin/python
from twisted.internet import reactor
import smb, nmb, sys
BROADCAST = '192.168.0.255'
class ListShares(smb.SMB):
def sessionEstablished(self):
print 'session established'
d = self.listShares()
d.addCallback(gotShares)
d.addErrback(disaster)
def gotShares(shares):
print shares
reactor.stop()
def disaster(failure):
print "FAILURE"
print failure
reactor.stop()
def lookup(remoteName):
d = nmb.lookup(remoteName, BROADCAST, broadcast=True)
d.addCallback(listShares, remoteName)
d.addErrback(disaster)
def listShares(remoteIP, remoteName):
f = smb.SMBFactory(remoteName)
f.protocol = ListShares
reactor.connectTCP(remoteIP[0].ip, 139, f)
def main(remoteName):
lookup(remoteName)
reactor.run()
if __name__ == '__main__':
main(sys.argv[1])
syntax highlighted by Code2HTML, v. 0.9.1