NMAP 服务信息
NMAP Service Information
通过这段代码,我可以获得主机名、使用的协议、端口和端口状态。我怎样才能获得服务信息?
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('----------')
您可以使用 socket
模块中的 getservbyport
函数通过端口获取服务名称,尝试做类似的事情:
>>> import socket
>>> socket.getservbyport(80)
'http'
在 python 中没有明确的方法来获取有关特定服务的信息(或定义),因此请尝试搜索有关网站(并提供 API 以将其用于 python).
好的伙计们,我现在知道怎么做了!
由于我们使用 NMAP,nmap 可以告诉我们什么服务 运行 在什么端口上。
您可以使用类似的方式提取信息,例如:
print('port : %s\tservice : %s' % (port, nm[host][proto][port]['name']))
通过这段代码,我可以获得主机名、使用的协议、端口和端口状态。我怎样才能获得服务信息?
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('----------')
您可以使用 socket
模块中的 getservbyport
函数通过端口获取服务名称,尝试做类似的事情:
>>> import socket
>>> socket.getservbyport(80)
'http'
在 python 中没有明确的方法来获取有关特定服务的信息(或定义),因此请尝试搜索有关网站(并提供 API 以将其用于 python).
好的伙计们,我现在知道怎么做了! 由于我们使用 NMAP,nmap 可以告诉我们什么服务 运行 在什么端口上。 您可以使用类似的方式提取信息,例如:
print('port : %s\tservice : %s' % (port, nm[host][proto][port]['name']))