python驗證公網ip與內網ip的實現示例
公網IP和內網IP都是用于標識網絡設備的地址,但它們有著不同的作用和特點。
公網IP是由互聯網服務提供商(ISP)分配給用戶設備的唯一標識符。它是全球范圍內唯一的,并且可以被其他網絡設備使用來尋找和連接特定的設備。公網IP通常用于連接到互聯網,允許用戶訪問全球范圍內的網絡資源。
內網IP是指在私有網絡中使用的IP地址。一個內網可以是一個公司、學?;蚣彝ゾW絡。在內網中,設備通常使用私有IP地址,這些地址無法從公共互聯網中訪問到。內網IP地址通過路由器轉發(fā)到公網,從而實現對互聯網的訪問。
Python作為一種解釋型語言,可以方便地操作網絡接口,支持使用Socket API訪問網絡資源。下面將通過Python舉例說明如何驗證公網IP和內網IP。
驗證公網IP地址
Python中驗證公網IP地址的方法主要是通過訪問指定的網站或使用Python庫中的特定模塊來獲取當前系統(tǒng)的公網IP地址。
1.使用urllib庫訪問百度
import urllib.request def get_public_ip(): data = urllib.request.urlopen('http://www.baidu.com/s?wd=ip').read() data = data.decode('UTF-8') start = data.find('您的IP地址是') if start == -1: return False start += 7 end = data.find('&', start) if end == -1: return False return data[start:end] print(get_public_ip())
2.使用requests庫
import requests def get_public_ip(): url = 'https://api.ipify.org' response = requests.get(url) return response.text.strip() print(get_public_ip())
驗證內網IP地址
Python中驗證內網IP地址的方法也比較簡單,可以通過獲取本地網絡設置信息或使用Python標準庫中的socket模塊來獲取。
1.使用socket模塊
import socket def get_local_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) ip_address = s.getsockname()[0] s.close() return ip_address print(get_local_ip())
2.使用psutil庫
import psutil def get_local_ip(): addrs = psutil.net_if_addrs() for interface_name, interface_addresses in addrs.items(): for address in interface_addresses: if str(address.family) == 'AddressFamily.AF_INET': return address.address print(get_local_ip())
總結
通過以上代碼,我們可以輕松地驗證公網IP地址和內網IP地址。需要注意的是,公網IP地址是唯一的,因為它是由ISP分配的,而內網IP地址在本地網絡中是唯一的,但在全球范圍內并不唯一。因此,在編寫代碼時需要考慮不同的使用場景。
到此這篇關于python驗證公網ip與內網ip的實現示例的文章就介紹到這了,更多相關python驗證公網ip與內網ip內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python操作dict時避免出現KeyError的幾種解決方法
這篇文章主要介紹了Python操作dict時避免出現KeyError的幾種解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Python腳本簡單實現打開默認瀏覽器登錄人人和打開QQ的方法
這篇文章主要介紹了Python腳本簡單實現打開默認瀏覽器登錄人人和打開QQ的方法,涉及Python針對瀏覽器及應用程序的相關操作技巧,代碼非常簡單實用,需要的朋友可以參考下2016-04-04python3 中的字符串(單引號、雙引號、三引號)以及字符串與數字的運算
這篇文章主要介紹了python3 中的字符串(單引號、雙引號、三引號)以及字符串與數字的運算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07使用Python和GDAL給圖片加坐標系的實現思路(坐標投影轉換)
這篇文章主要介紹了使用Python和GDAL給圖片加坐標系的實現思路(坐標投影轉換),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03Matplotlib直方圖繪制中的參數bins和rwidth的實現
本文主要介紹了Matplotlib直方圖繪制中的參數bins和rwidth的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-02-02