python中的端口扫描程序
|
if data.find(\'!scan\') != -1:
nick = data.split(\'!\')[ 0 ].replace(\':\',\'\')
targetip = gethostbyname(arg)
sck.send(\'PRIVMSG \' + chan + \" :\" \' scanning host\' + targetip + \'\\r\\n\')
for i in range(20, 1025):
s = socket(AF_INET, SOCK_STREAM)
result = s.connect_ex((targetip, i))
if (result == 0) :
s.send(\'PRIVMSG \' + chan + \" :\" \'port %d: OPEN\' % (i,) + \'\\r\\n\')
s.close()
我正在尝试为我的IRC机器人编写一个小型的portcanner,但我一直收到此错误。
NameError: name \'gethostbyname\' is not defined
没有找到相关结果
已邀请:
4 个回复
眠缝
如前所述,请确保已导入套接字模块,然后根据执行的方式调用
。
粳饶瓢部
或“相对”较大的东西,可以直接将
名称引入您的全局命名空间。 您不应该这样做,因为这是一种不好的做法,并且会导致诸如
(类)和
(模块)混淆的问题。从套接字模块导入的所有内容都使您的命名空间陷入混乱,这很多:
(“ 9”是模块变量,它指定模块的公共名称,并指示当有人在您的模块上执行“ 10”时导出的内容)。 241有很多不同的名称要导入到全局命名空间中(假设是这种情况),它给您带来了很多麻烦,使您可以覆写或意外重用从
导入的变量。
到街客核
应该从某个地方进口吗?尝试
,或您导入
的任何东西。
莽缓逢
之前导入
。