整體是思路就是
1、先獲取我本機的ip位址
2、拿到我本機ip後,擷取ip的最後一段,保留前一部分網段資訊
3、呼叫cmd命令,迴圈從1迴圈255次到255來ping 整個網段內可以ping通的ip
通過ping ttl 大於0 判斷是否可ping通
4、最後得到可以ping通的ip位址
# -*- coding: utf-8 -*-
import platform
import os
import time
import threading
import socket
live_ip = 0
def get_os():
os = platform.system()
if os == "windows":
return "n"
else:
return "c"
def ping_ip(ip_str):
cmd = ["ping", "-".format(op=get_os()),
"1", ip_str]
output = os.popen(" ".join(cmd)).readlines()
for line in output:
if str(line).upper().find("ttl") >= 0:
global live_ip
live_ip += 1
break
def find_ip(ip_prefix):
'''''
給出當前的ip位址段 ,然後掃瞄整個段所有位址
'''threads =
for i in range(1, 256):
ip = '%s.%s' % (ip_prefix, i)
for i in threads:
i.start()
for i in threads:
i.join()
def find_local_ip():
"""獲取本機當前ip位址
:return: 返回本機ip位址
"""myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
return myaddr
if __name__ == "__main__":
addr = find_local_ip()
args = "".join(addr)
ip_pre = '.'.join(args.split('.')[:-1])
find_ip(ip_pre)
print("掃瞄結束時間 %s" % time.ctime())
print('本次掃瞄共檢測到本網路存在%s臺裝置' % live_ip)
執行結果:
掃瞄結束時間 sun apr 26 00:10:32 2020
本次掃瞄共檢測到本網路存在8臺裝置
到此,我們就獲取到了整個區域網中的全部可連線網路。
mysql 設定區域網內可訪問
今天同事要連我電腦的資料庫 我以為只要127.0.0.1 可以訪問就是 執行通過ip訪問的。然而並不是。這裡記錄下方法 1.開啟命令列 進入你電腦的 mysql的bin 目錄下 mysql u root p 輸入密碼 2.開啟 mysql 資料庫 use mysql 檢索 user 和 host 字...
python 獲取區域網內的廣播位址
coding utf 8 importsubprocess importre importsocket defgetbroadaddlist 獲取ip以及子網掩碼 windows 下的命令是ipconfig,linux下是ifconfig,倘若再不行,我們直接用python獲取ip try try ...
偵聽區域網內密碼
只需在前面的網路嗅探程式基礎上,新增對搜尋出的埠號進行的增加功能即可 如下 在decodeippacket中新增 switch ntohs ptcphdr destinationport break case80 case 8080 break void getftp char pdata.dwor...