Python獲取區域網內可連通的主機ip位址

2021-10-05 11:27:14 字數 1559 閱讀 6410

整體是思路就是

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...