使用Python扫描路由ip
2020-01-12 11:24:39 Author: mp.weixin.qq.com(查看原文) 阅读量:137 收藏


用于扫描开放了某些端口的ip


timeout可以设置成1秒或2秒。


local_ips是获取多块网卡上绑定的IP,比如我的IP地址是192.168.1.4和192.168.56.1。


而代码所做的事情就是扫描 [192.168.1.1 ~ 192.168.1.254]  [192.168.56.1 ~ 192.168.56.254] 有哪些IP开放80端口。


虽然有许多现成的扫描工具


但是喜欢PY交易的童鞋不妨可以研究研究



  1. import socket

  2. import threading

  3. routers = []

  4. lock = threading.Lock()

  5. def search_routers(): 

  6.     routers = []

  7.     local_ips = socket.gethostbyname_ex(socket.gethostname())[2]    # get local IP

  8.     all_threads = []

  9.     for ip in local_ips:

  10.         for i in range(1, 255):

  11.             array = ip.split('.')

  12.             array[3] = str(i)

  13.             new_ip = '.'.join(array)

  14.             t = threading.Thread(target=check_ip, args=(new_ip,) )

  15.             t.start()

  16.             all_threads.append(t)

  17.     for t in all_threads:

  18.         t.join()

  19. def check_ip(new_ip):

  20.     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  21.     s.settimeout(1)

  22.     result = s.connect_ex((new_ip, 80))

  23.     s.close()

  24.     if result == 0:

  25.         lock.acquire()

  26.         print new_ip.ljust(15), ' port 80 is open'

  27.         routers.append((new_ip, 80))

  28.         lock.release()

  29. print 'Searching for routers, please wait...'

  30. search_routers()

推荐文章++++

*python脚本实现自动安装nginx

*“黑客”必备书籍 “黑”之Python!

*Python监控服务器实现邮件微信报警


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650459342&idx=3&sn=950c0fa1d18116d1e15ad6df97134425&chksm=83bba92ab4cc203cfb348c8eff1a571ea54bd24b6c8683610c93c16006f6aa4bd3a567d1b82a#rd
如有侵权请联系:admin#unsafe.sh