本文实例讲述了Python扫描IP段查看指定端口是否开放的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/local/bin/python #-*- coding: UTF-8 -*- #################################################################### ################################################## #BLOG:http://hi.baidu.com/alalmn # Python 扫描IP段 指定端口是否开放 ################################################## import socket import threading,time socket.setdefaulttimeout(10) #设置了全局默认超时时间 #查看IP端口是否开放 class socket_port(threading.Thread): def __init__(self,cond, name): super(socket_port, self).__init__() self.cond = cond self.cond.set()#将标识位设为Ture self.HOST = name def run(self): #time.sleep(1) #确保先运行Seeker中的方法 try: PORT=21 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((self.HOST,PORT)) print"" print self.HOST,u":",PORT,u"端口开放" #self.cond.wait()#堵塞线程,直到Event对象内部标识位被设为True或超时(如果提供了参数timeout)。 self.cond.set()#将标识位设为Ture return 1 except: print ".", #print self.HOST,u":",PORT,u"端口未开放" #self.cond.wait()#堵塞线程,直到Event对象内部标识位被设为True或超时(如果提供了参数timeout)。 self.cond.set()#将标识位设为Ture return 0 ## #socket_port("192.168.2.1") #if socket_port("192.168.2.100"): # print "开放" #else: # print "未开放" def ip2num(ip): ip = [int(x) for x in ip.split('.')] return ip[0]<<24 | ip[1]<<16 | ip[2]<<8 | ip[3] def num2ip(num): #time.sleep(0.05) #50ms #time.sleep(0.1) #s # data='%s.%s.%s.%s' % ( (num & 0xff000000) >> 24, # (num & 0x00ff0000) >> 16, # (num & 0x0000ff00) >> 8, # num & 0x000000ff ) # #socket_port(data) #查看IP端口是否开放 if num>=IPend: print u"IP导入数组完成" return '%s.%s.%s.%s' % ( (num & 0xff000000) >> 24, (num & 0x00ff0000) >> 16, (num & 0x0000ff00) >> 8, num & 0x000000ff ) def gen_ip(ip1,ip2): #返回数组 # ip # global IPend # start, IPend = [ip2num(x) for x in ip.split('-')] global IPend IPend=ip2 return [num2ip(num) for num in range(ip1,ip2+1) if num & 0xff] import ini if __name__=='__main__': ini.ini_get() #读取INI list_ip=gen_ip(ip2num(ini.IP1),ip2num(ini.IP2)) I1 = 0 #得到list的第一个元素 print u"开始扫描IP" ip=0 while I1 < len(list_ip): #print list_ip[I1] time.sleep(0.3) #确保先运行Seeker中的方法 cond = threading.Event() hider = socket_port(cond,list_ip[I1]) hider.start() if ip>=255: ini.ini_write(list_ip[I1],ini.IP2) #修改INI print ip ip=0 ip=ip+1 I1 = I1 + 1 #一层
ini.py:
#!/usr/local/bin/python #-*- coding: UTF-8 -*- ################################################## #qq:316118740 #BLOG:http://hi.baidu.com/alalmn # Python 操作ini文件 # 刚学写的不好请大家见谅 ################################################## IP1="" #扫描IP IP2="" #当前已经扫到的IP INITXT="IP.ini" #INI文件名字 import ConfigParser def ini_get(): #读取INI try: global IP1 global IP2 global INITXT config = ConfigParser.ConfigParser() config.readfp(open(INITXT)) IP1 = config.get("ipdata","ip1") IP2 = config.get("ipdata","ip2") except: print "读取INI错误" ini_add("","") #写入INI def ini_add(ip1,ip2): #写入INI try: global INITXT config = ConfigParser.ConfigParser() config.add_section("ipdata")# 设置section段及对应的值 config.set("ipdata","ip1",ip1) config.set("ipdata","ip2",ip2) config.write(open(INITXT, "w"))# 写入文件 except: print "写入INI错误" def ini_write(ip1,ip2): #修改INI try: global INITXT config = ConfigParser.ConfigParser() config.read(INITXT) if not config.has_section("ipdata"):#看是否存在该Section,不存在则创建 temp = config.add_section("") config.set("ipdata","ip1",ip1) config.set("ipdata","ip2",ip2) config.write(open(INITXT, "r+")) except: print "修改INI错误" ini_add("","") #写入INI #if __name__=='__main__': ## ini_get() #读取INI ## print IP1 ## print IP2 # ## ini_add("222222222","3333333333333") #写入INI ## ini_get() #读取INI ## print IP1 ## print IP2 # # ini_write("999999999","0000000000") #修改INI # ini_get() #读取INI # print IP1 # print IP2
运行:
代码如下:
python TCP21.py
希望本文所述对大家的Python程序设计有所帮助。

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

Kesan homogenitas tatasusunan pada prestasi adalah dwi: 1) homogenitas membolehkan pengkompil untuk mengoptimumkan akses memori dan meningkatkan prestasi; 2) tetapi mengehadkan kepelbagaian jenis, yang boleh menyebabkan ketidakcekapan. Singkatnya, memilih struktur data yang betul adalah penting.

ToCraftExecutablePythonscripts, ikutiTheseBestPractics: 1) addAshebangline (#!/Usr/bin/envpython3) tomakethescriptexecutable.2) setpermissionswithchmod xyour_script.py.3)

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini
