0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在命令行快速獲取公網(wǎng)動(dòng)態(tài)IP地址

jf_qwOiugB3 ? 來源:通信弱電交流學(xué)習(xí) ? 2023-04-18 10:25 ? 次閱讀

0b214c5c-dd86-11ed-bfe3-dac502259ad0.png

如何確定公網(wǎng)IP地址是一個(gè)讓很多家用寬帶朋友們經(jīng)常遇到的問題,畢竟固定IP地址總是價(jià)格不菲因而不適用于家庭寬帶,而我們的電信寬帶運(yùn)營商(ISP)往往給我們分配的是動(dòng)態(tài)IP地址,之所以稱作為動(dòng)態(tài)IP地址,是因?yàn)槊看螕芴?hào)得到的IP地址可能會(huì)不一樣,還有更騷的操作就是有的運(yùn)營商每天或不定期在某個(gè)時(shí)間刷新IP地址池,這樣已經(jīng)獲得的IP地址將會(huì)被強(qiáng)制釋放并分配新的IP地址。

這對(duì)于我們一些運(yùn)行在家用帶寬下的服務(wù)帶來了影響——需要重新設(shè)置服務(wù)端 IP 地址,比如監(jiān)控、網(wǎng)絡(luò)存儲(chǔ)等等,這時(shí)候 DDNS 就發(fā)揮作用的,現(xiàn)在大部分路由器內(nèi)置了 DDNS 客戶端,比如花生殼等服務(wù)客戶端,但是這些客戶端存在收費(fèi)、不穩(wěn)定以及刷新間隔小等問題,對(duì)于自己有域名的朋友可以使用 DNS 服務(wù)商的 API 自己實(shí)現(xiàn) IP 更新操作,比如阿里云(Aliyun)、Cloudflare 均可以實(shí)現(xiàn)。

對(duì)于 DDNS 如何使用 API 更新不在本文敘述范圍內(nèi),但調(diào)用 API 有個(gè)關(guān)鍵參數(shù)那就是公網(wǎng)IP地址,如何獲取當(dāng)前運(yùn)營商分配的公網(wǎng) IP地址呢?除了問路由器外(打開路由器管理界面找到 WAN 口信息)我們還可以通過一些網(wǎng)絡(luò)服務(wù)進(jìn)行檢測(cè)。

1使用 Shell 命令獲取公網(wǎng) IP 地址

瀏覽器方式

如果我們使用瀏覽器打開這個(gè)地址checkip.amazonaws.com你就會(huì)發(fā)現(xiàn)你的公網(wǎng)IP地址赫然在目,互聯(lián)網(wǎng)上的服務(wù)器總是能夠知道是什么 IP地址的客戶端發(fā)起了連接,當(dāng)然就可以通過這種方式獲取公網(wǎng) IP,同樣功能的網(wǎng)站有很多,這里列舉部分我收集到的:

https://checkip.amazonaws.com
https://api.ipify.org
https://ifconfig.me/ip
https://icanhazip.com
https://ipinfo.io/ip
https://ipecho.net/plain
https://checkipv4.dedyn.io

curl方式

在命令行下我們當(dāng)然不能為這點(diǎn)小事隨便啟動(dòng)瀏覽器,我們可以請(qǐng)出另外一個(gè)功能強(qiáng)大的工具,那就是curl,cURL 是一個(gè)利用URL語法在命令行下工作的文件傳輸工具,關(guān)于cURL的快速用法可以參考阮一峰的網(wǎng)絡(luò)日志《curl 的用法指南》,這里不再詳述,最簡單的用法就是curl 你要請(qǐng)求的網(wǎng)址,比如curl checkip.amazonaws.com。

[root@www.lutixia.cn ~]# curl cip.cc
IP  : 171.43.148.打碼
地址  : 中國  ...
運(yùn)營商  : 電信
...
URL  : http://www.cip.cc/171.43.148.打碼


[root@www.lutixia.cn ~]# curl ip.sb
171.43.148.打碼


[root@www.lutixia.cn ~]# curl ifconfig.me
171.43.148.打碼


[root@www.lutixia.cn ~]# curl  myip.ipip.net
當(dāng)前 IP:171.43.148.打碼  來自于:中國 。。。電信


[root@www.lutixia.cn ~]# curl ip.threep.top
171.43.148.打碼

使用 dig 命令

首次在別人腳本中看到這個(gè)方式獲取公網(wǎng)IP覺得比較新奇,命令如下:

dig+shortmyip.opendns.com@resolver1.opendns.com

這個(gè)是由OpenDNS提供的服務(wù),如果你的主機(jī)上沒有安裝dig命令,對(duì)于Debian系列系統(tǒng)可以通過apt-get install dnsutils安裝,這個(gè)命令的原理是指定resolver1.opendns.com為域名myip.opendns.com的解析服務(wù)器,為什么要指定,主要是避免 DNS 下游服務(wù)器緩存,另外這個(gè)指定的解析服務(wù)器被 OpenDNS 進(jìn)行了特殊配置,其始終將域名myip.opendns.com解析為發(fā)起 DNS 請(qǐng)求的客戶端 IP 地址,這樣也就實(shí)現(xiàn)了查找公網(wǎng) IP的功能。

這個(gè)和 cURL 方式比有什么優(yōu)勢(shì)呢?當(dāng)然是數(shù)據(jù)量更小傳輸更快,畢竟使用 cURL 發(fā)起 HTTP 請(qǐng)求必然會(huì)導(dǎo)致協(xié)議頭等無關(guān)信息的交換,如果啟用了 HTTPS/TLS 那么還要進(jìn)行加密協(xié)商,效率會(huì)比較低,當(dāng)然這種方式的缺點(diǎn)就是 DNS 查詢?nèi)菀妆贿\(yùn)營商審計(jì)和過濾,穩(wěn)定性略差,不過我測(cè)試下來除了偶爾查詢失敗外其余情況是完全 OK 的。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9434

    瀏覽量

    86510
  • ip地址
    +關(guān)注

    關(guān)注

    0

    文章

    304

    瀏覽量

    17248
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1038

    瀏覽量

    35745
  • 命令行
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    10448
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    368

    瀏覽量

    23549

原文標(biāo)題:如何在命令行快速獲取公網(wǎng)動(dòng)態(tài) IP 地址

文章出處:【微信號(hào):通信弱電交流學(xué)習(xí),微信公眾號(hào):通信弱電交流學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NanoPi NEO - 使用命令行查看IP 地址和主機(jī)名 - 04

    `1、 使用命令行查看IP 地址和主機(jī)名NEO 聯(lián)網(wǎng)后,我們會(huì)需要知道它的IP 地址和設(shè)備的hostname.這個(gè)章節(jié)會(huì)告訴你們?nèi)绾?/div>
    發(fā)表于 05-06 13:50

    請(qǐng)問如何在代碼里執(zhí)行命令行?。?/a>

    請(qǐng)問如何在代碼里執(zhí)行命令行???比如,在命令行可以執(zhí)行echo abcdefg aaa.txt生成一個(gè)aaa.txt。那么如何在程序中執(zhí)行 echo abcdefg aaa.txt 這一
    發(fā)表于 10-28 10:15

    cmd網(wǎng)絡(luò)經(jīng)典命令行

    cmd網(wǎng)絡(luò)經(jīng)典命令行:
    發(fā)表于 06-11 15:17 ?36次下載
    cmd網(wǎng)絡(luò)經(jīng)典<b class='flag-5'>命令行</b>

    如何獲取其它程序的命令行參數(shù)

    開發(fā)環(huán)境:VC6 Windows XP 測(cè)試環(huán)境:WindowsXP 我們都知道,在程序里獲取命令行參數(shù)很簡單,WinMain函數(shù)會(huì)以參數(shù)的形式傳遞給我們,或者可以調(diào)用API GetCommandLine 獲取。但
    發(fā)表于 10-14 09:24 ?1次下載

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對(duì)于大多用戶來說往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2344次閱讀

    CMD的命令行高級(jí)教程

    CMD的命令行高級(jí)教程
    發(fā)表于 10-24 08:31 ?30次下載
    CMD的<b class='flag-5'>命令行</b>高級(jí)教程

    如何從命令行獲取和解析參數(shù)

    這是一篇技術(shù)干貨快文,能夠快速閱讀完。文章內(nèi)容是關(guān)于如何從命令行獲取和解析參數(shù),包括SystemVerilog本身支持的系統(tǒng)函數(shù)和UVM提供的函數(shù)封裝,并給出示例代碼和仿真結(jié)果。
    的頭像 發(fā)表于 05-30 14:05 ?3255次閱讀

    【openssl】利用openssl命令行快速生成RSA私鑰

    【openssl】如何利用openssl命令行快速生成RSA私鑰?
    的頭像 發(fā)表于 08-31 12:58 ?3489次閱讀
    【openssl】利用openssl<b class='flag-5'>命令行</b><b class='flag-5'>快速</b>生成RSA私鑰

    何在Linux命令行中格式化輸出xml

    我們先前分享過一篇關(guān)于在命令行中格式化輸出 json 文件的文章,今天我們?cè)賮矸窒硪幌氯?b class='flag-5'>何在命令行中格式化輸出 xml。
    的頭像 發(fā)表于 01-12 17:37 ?1647次閱讀
    如<b class='flag-5'>何在</b>Linux<b class='flag-5'>命令行</b>中格式化輸出xml

    何在Linux命令行中運(yùn)行Python腳本

    Python 腳本。 在本文中,我們將詳細(xì)介紹如何在 Linux 命令行中運(yùn)行 Python 腳本。我們將討論以下主題:
    的頭像 發(fā)表于 05-12 14:49 ?1846次閱讀

    LabVIEW命令行調(diào)用exe傳入的參數(shù)如何獲取

    有些場(chǎng)景下,我們用LabVIEW開發(fā)的應(yīng)用程序,需要通過命令行來調(diào)用,并向該應(yīng)用程序傳遞參數(shù),那么在程序中如何才能獲取這些參數(shù)呢?
    發(fā)表于 10-11 09:28 ?2876次閱讀
    LabVIEW<b class='flag-5'>命令行</b>調(diào)用exe傳入的參數(shù)如何<b class='flag-5'>獲取</b>

    linux切換到命令行模式

    在Linux中,可以通過以下步驟切換到命令行模式: 打開終端。可以在應(yīng)用菜單中找到終端或命令行終端。 在終端中輸入命令“exit”或“l(fā)ogout”,然后按回車鍵。 系統(tǒng)會(huì)提示您輸入管理員密碼。輸入
    的頭像 發(fā)表于 11-13 16:47 ?1936次閱讀

    pycharm命令行終端運(yùn)行代碼

    。 PyCharm的命令行終端允許開發(fā)者在IDE中直接執(zhí)行命令,并查看輸出結(jié)果。通過使用命令行終端,開發(fā)者可以在不離開PyCharm的情況下運(yùn)行代碼、調(diào)試程序和執(zhí)行其他與開發(fā)相關(guān)的任務(wù)。 在本文中,我們將詳細(xì)介紹如
    的頭像 發(fā)表于 11-22 11:20 ?5348次閱讀

    eclipse怎么使用命令行

    命令行中使用Eclipse來完成一些特定的任務(wù)。本文將詳細(xì)介紹如何在命令行中使用Eclipse。 首先,我們需要確保已經(jīng)正確安裝了JDK(Java Development Kit)和Eclipse
    的頭像 發(fā)表于 12-06 11:26 ?3005次閱讀

    idea如何輸入命令行參數(shù)

    在許多軟件開發(fā)和系統(tǒng)管理的任務(wù)中,我們經(jīng)常需要向應(yīng)用程序傳遞命令行參數(shù)。命令行參數(shù)是在運(yùn)行時(shí)傳遞給程序的值,用于指定程序的行為和配置選項(xiàng)。本文將詳細(xì)介紹如何在不同的編程語言和操作系統(tǒng)中輸入命令
    的頭像 發(fā)表于 12-06 15:01 ?1370次閱讀