国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python掃描IP段查看指定端口是否開放的方法

2020-02-23 01:33:09
字體:
來源:轉載
供稿:網友

本文實例講述了Python掃描IP段查看指定端口是否開放的方法。分享給大家供大家參考。具體實現方法如下:

#!/usr/local/bin/python#-*- coding: UTF-8 -*-#######################################################################################################################BLOG:http://hi.baidu.com/alalmn# Python 掃描IP段 指定端口是否開放##################################################import socketimport threading,timesocket.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 iniif __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="" #掃描IPIP2=""  #當前已經掃到的IPINITXT="IP.ini" #INI文件名字import ConfigParserdef 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            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东港市| 仪陇县| 北票市| 丁青县| 柘荣县| 临海市| 云南省| 钟山县| 靖边县| 长宁区| 云林县| 密云县| 河北省| 贺州市| 洞口县| 弥渡县| 罗定市| 苏尼特左旗| 太仆寺旗| 图木舒克市| 巨鹿县| 杭州市| 东安县| 泰来县| 康定县| 且末县| 莱州市| 广宁县| 巫山县| 鲁甸县| 广南县| 阜宁县| 乐陵市| 鱼台县| 偃师市| 石狮市| 青河县| 伊春市| 左云县| 株洲县| 万年县|