特定端口梳理ip

image.png
# encoding: utf-8

import nmap
import os

iptxt = open('ip.txt')
iplist = []
aliveip = []
ipas = []
nm = nmap.PortScanner()
with open ('ip.txt','r') as f:
    for line in f:
        iplist.append(line.strip('\n'))
    
def livescan(ip):
    a = nm.scan(hosts = ip,arguments = '-sP')
    if  a['scan']:
        return 1
    else:
        return 2


def portscan(ip,port):
    b = nm.scan(ip,port,'sV')
    int(port, base=10)
    #print(b['scan'][ip]['tcp'][int(port, base=10)]['state']) 
    if b['scan'][ip]['tcp'][int(port, base=10)]['state'] == 'open':
        return 1
    else:
        return 2
        
def main():
    for i in range(len(iplist)):
        ip = iplist[i]
        print(ip)
        if livescan(ip) == 1:
            print(ip)
            aliveip.append(ip)
    print("存活主机:",aliveip)
    file = open('aliveip.txt','w')
    for j in range(len(aliveip)):
        jIN = aliveip[j]
        file.write(jIN+'\n')


    port = input("您要get的端口:" )
    file = open('port.txt','w')
    print("以下ip开启了该端口:\n")
    for ipa in aliveip:
        ipas.append(ipa)
        if portscan(ipa,port) == 1:
            print(ipa)
            file.write(ipa+'\n')
    print(ipas)
            

    

if __name__ == '__main__':
    main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容