python驗(yàn)證公網(wǎng)ip與內(nèi)網(wǎng)ip的實(shí)現(xiàn)示例
公網(wǎng)IP和內(nèi)網(wǎng)IP都是用于標(biāo)識(shí)網(wǎng)絡(luò)設(shè)備的地址,但它們有著不同的作用和特點(diǎn)。
公網(wǎng)IP是由互聯(lián)網(wǎng)服務(wù)提供商(ISP)分配給用戶設(shè)備的唯一標(biāo)識(shí)符。它是全球范圍內(nèi)唯一的,并且可以被其他網(wǎng)絡(luò)設(shè)備使用來尋找和連接特定的設(shè)備。公網(wǎng)IP通常用于連接到互聯(lián)網(wǎng),允許用戶訪問全球范圍內(nèi)的網(wǎng)絡(luò)資源。
內(nèi)網(wǎng)IP是指在私有網(wǎng)絡(luò)中使用的IP地址。一個(gè)內(nèi)網(wǎng)可以是一個(gè)公司、學(xué)?;蚣彝ゾW(wǎng)絡(luò)。在內(nèi)網(wǎng)中,設(shè)備通常使用私有IP地址,這些地址無法從公共互聯(lián)網(wǎng)中訪問到。內(nèi)網(wǎng)IP地址通過路由器轉(zhuǎn)發(fā)到公網(wǎng),從而實(shí)現(xiàn)對互聯(lián)網(wǎng)的訪問。
Python作為一種解釋型語言,可以方便地操作網(wǎng)絡(luò)接口,支持使用Socket API訪問網(wǎng)絡(luò)資源。下面將通過Python舉例說明如何驗(yàn)證公網(wǎng)IP和內(nèi)網(wǎng)IP。
驗(yàn)證公網(wǎng)IP地址
Python中驗(yàn)證公網(wǎng)IP地址的方法主要是通過訪問指定的網(wǎng)站或使用Python庫中的特定模塊來獲取當(dāng)前系統(tǒng)的公網(wǎ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())
驗(yàn)證內(nèi)網(wǎng)IP地址
Python中驗(yàn)證內(nèi)網(wǎng)IP地址的方法也比較簡單,可以通過獲取本地網(wǎng)絡(luò)設(shè)置信息或使用Python標(biāo)準(zhǔn)庫中的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())
總結(jié)
通過以上代碼,我們可以輕松地驗(yàn)證公網(wǎng)IP地址和內(nèi)網(wǎng)IP地址。需要注意的是,公網(wǎng)IP地址是唯一的,因?yàn)樗怯蒊SP分配的,而內(nèi)網(wǎng)IP地址在本地網(wǎng)絡(luò)中是唯一的,但在全球范圍內(nèi)并不唯一。因此,在編寫代碼時(shí)需要考慮不同的使用場景。
到此這篇關(guān)于python驗(yàn)證公網(wǎng)ip與內(nèi)網(wǎng)ip的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)python驗(yàn)證公網(wǎng)ip與內(nèi)網(wǎng)ip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python操作dict時(shí)避免出現(xiàn)KeyError的幾種解決方法
這篇文章主要介紹了Python操作dict時(shí)避免出現(xiàn)KeyError的幾種解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09pycharm調(diào)試功能如何實(shí)現(xiàn)跳到循環(huán)的某一步
這篇文章主要介紹了pycharm調(diào)試功能如何實(shí)現(xiàn)跳到循環(huán)的某一步問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python腳本簡單實(shí)現(xiàn)打開默認(rèn)瀏覽器登錄人人和打開QQ的方法
這篇文章主要介紹了Python腳本簡單實(shí)現(xiàn)打開默認(rèn)瀏覽器登錄人人和打開QQ的方法,涉及Python針對瀏覽器及應(yīng)用程序的相關(guān)操作技巧,代碼非常簡單實(shí)用,需要的朋友可以參考下2016-04-04python3 中的字符串(單引號(hào)、雙引號(hào)、三引號(hào))以及字符串與數(shù)字的運(yùn)算
這篇文章主要介紹了python3 中的字符串(單引號(hào)、雙引號(hào)、三引號(hào))以及字符串與數(shù)字的運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07用TensorFlow實(shí)現(xiàn)戴明回歸算法的示例
這篇文章主要介紹了用TensorFlow實(shí)現(xiàn)戴明回歸算法的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05使用Python和GDAL給圖片加坐標(biāo)系的實(shí)現(xiàn)思路(坐標(biāo)投影轉(zhuǎn)換)
這篇文章主要介紹了使用Python和GDAL給圖片加坐標(biāo)系的實(shí)現(xiàn)思路(坐標(biāo)投影轉(zhuǎn)換),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03基于Python實(shí)現(xiàn)通過微信搜索功能查看誰把你刪除了
這篇文章主要介紹了基于Python實(shí)現(xiàn)微信搜索查看誰把你刪除了的相關(guān)資料,需要的朋友可以參考下2016-01-01Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn)
本文主要介紹了Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02Python?scipy利用快速傅里葉變換實(shí)現(xiàn)濾波
這篇文章主要為大家詳細(xì)介紹了Python?scipy如何利用快速傅里葉變換實(shí)現(xiàn)濾波,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01