使用此代码,我可以获取主机名,使用的协议,端口和端口状态。我怎样才能获得服务信息?
for host in nm.all_hosts():
print('----------------------------------------------------')
print('Host : %s (%s)' % (host, nm[host].hostname()))
print('State : %s' % nm[host].state())
for proto in nm[host].all_protocols():
print('----------')
print('Protocol : %s' % proto)
lport = list(nm[host][proto].keys())
lport.sort()
for port in lport:
print('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))
print('----------')
答案 0 :(得分:1)
您可以使用socket
模块中的>>> import socket
>>> socket.getservbyport(80)
'http'
函数逐个端口获取服务名称,尝试执行类似的操作:
class Person(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
age = models.PositiveSmallIntegerField()
没有明确的方法来获取有关python中特定服务的信息(或定义),因此尝试搜索有关网站的信息(并提供API以便将其与python一起使用)。
答案 1 :(得分:0)
好的伙计们,我知道它现在是如何完成的! 由于我们使用NMAP,nmap可以告诉我们在哪个端口上运行什么服务。 您可以使用类似的信息提取信息,例如:
print('port : %s\tservice : %s' % (port, nm[host][proto][port]['name']))