NMAP服务信息

时间:2017-12-09 17:36:42

标签: python nmap port-scanning

使用此代码,我可以获取主机名,使用的协议,端口和端口状态。我怎样才能获得服务信息?

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

2 个答案:

答案 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']))