扫描端口命令(个人电脑搭建服务器)

  • 科技
  • 2023-04-25 13:18

多条告白如次剧本只需引入一次

运用python模块nmap,读取excel数据对多个ip端口探活扫描

我一个响指下来,每部分都要少一个外肾。。。

1、工欲善其事必先利其器。安置python-nmap模块。

piplist#cmd或powershell下察看已安置模块,至于pip吩咐情况变量,本人处置pipinstallpython-nmap

编写大略的nmap单端口跑一下看看功效。'''即使安置了python-nmap模块还不许运用,那就自行安置nmap图形化界面,而后增添到情况变量里,如许就ok了,我的即是如许;'''importnmapnp=nmap.PortScanner()a=np.scan(hosts='42.247.22.192',ports='80',arguments='-v-n-T4')print(a)归来截止:(要害的场合我已标红,重要即是看归来端口状况和效劳名)

{'nmap':{'command_line':'nmap-oX--p80-v-n-T442.247.22.192','scaninfo':{'tcp':{'method':'syn','services':'80'}},'scanstats':{'timestr':'ThuJun1011:31:572021','elapsed':'1.72','uphosts':'1','downhosts':'0','totalhosts':'1'}},'scan':{'42.247.22.192':{'hostnames':[{'name':'','type':''}],'addresses':{'ipv4':'42.247.22.192'},'vendor':{},'status':{'state':'up','reason':'syn-ack'},'tcp':{80:{'state':'open','reason':'syn-ack','name':'http','product':'','version':'','extrainfo':'','conf':'3','cpe':''}}}}}2、下面临获得的数据整治一下输入,让他看上去简略少许importnmapnp=nmap.PortScanner()a=np.scan(hosts='42.247.22.192',ports='80',arguments='-v-n-T4')ip='42.247.22.192'foriina['scan'][ip]['tcp'].keys():state=a['scan'][ip]['tcp'][i]['state']name=a['scan'][ip]['tcp'][i]['name']print(ip,i,state,name)归来截止:42.247.22.19280openhttp看着干净多了。

反面对于excel读取和线程的代码我径直贴了,即日工作多不细说了。。

3、运用python挪用excel模块和线程模块,读取excel数据,对多条数据举行扫描。

importnmapimportthreadingfromopenpyxlimportload_workbookfromxlwtimportWorkbookwk=Workbook(encoding='utf-8')wsheet=wk.add_sheet('Worksheet')co={}ls=[]defread_excel_file():wb=load_workbook('test/diqu.xlsx')#读取excel文献#sheets=wb.get_sheet_names()#print(sheets)sheet=wb['暴出面财产全量']#print(sheet)m=sheet['G']#读取excelG列,我的G列是ip:port,例:1.1.1.1:80forcellinm:#这个for轮回用来分隔ip和端口,存到co字典#print(cell.value)mn=cell.value.split(':')ifmn[0]inco:co[mn[0]].append(mn[1])else:try:co[mn[0]]=[mn[1]]except:co[mn[0]]=[]defthread(ip_port):#树立线程thread_num=threading.Semaphore(20)#树立线程数thread_list=[]forIP,portinip_port.items():#创造线程t=threading.Thread(target=nmap_ping_scan,args=(IP,port,thread_num,))thread_list.append(t)#print(t)fortinthread_list:#发端线程t.start()fortinthread_list:#等候线程t.join()print('线程中断')defnmap_ping_scan(ip,port,thread_num):#运用nmap扫描,截止惠存ls列表globallsstrport=','.join(portsforportsinport)thread_num.acquire()#线程锁try:nm=nmap.PortScanner()globalresultnp=nm.scan(hosts=ip,ports=strport,arguments="-v-n-T4")foriinnp['scan'][ip]['tcp'].keys():state=np['scan'][ip]['tcp'][i]['state']name=np['scan'][ip]['tcp'][i]['name']ls.extend([[ip,i,state,name]])#print(ip,i,state)exceptExceptionase:#print(e)passthread_num.release()defexcel_write(ls):#把ls列表的数据生存到新的excel中try:foruinrange(len(ls)):p=0forkinls[u]:wsheet.write(u,p,k)p+=1#print(u,p,k)except:passif__name__=='__main__':#步调启用read_excel_file(

猜你喜欢