DNSサーバーであなたの公共のIPアドレスを知る便利な方法


Originally written in : adityathebe.com


あなたが彼らを訪問するとき、あなたにあなたの公共のIPアドレスを示すたくさんのウェブサイトがあります.最も簡単な方法は、ちょうどGoogleに尋ねることです.これらのサイトでは、仕事を行うが、常にあなたの公共のIPを監視するときには、それらを訪問し続けるために退屈になります.ブラウザを実行する必要がありますし、Webサイト自体がロードする3 - 4秒かかります.
ipify APIのような便利なAPIサービスがあります.あなたが訪問するならばhttps://api.ipify.org/ プレーンテキストのHTTPレスポンスを取得します.このメソッドは、より小さい応答サイズのためにGoogleに尋ねるより少し速いです.また、スクリプトを作成する際に使用できるように便利です.

APIサービス
しかし、より速い方法があります.はるかに速く!それはクレイジーどのように高速です!それは100 - 200ミリ秒しかとらない.このメソッドはHTTPサーバではなくDNSサーバをクォートします.
私はdig DNSクエリを作成するコマンド.DIGは、ほとんどのLinux distrosでプリインストールされているDNSルックアップユーティリティです.
あなたはこのようなウェブサイトのIPアドレスを見つけるためにDIGを使用することができます.
# This will spill out a bunch of metadata
dig adityathebe.com

# This will simply return the ip address
dig +short adityathebe.com
我々のルータのIPアドレスを得るために、我々は特別なURL Myipを照会する必要があります.オプアートDNSリゾルバResolver 1へのCOM.オプアートCOM .
このDNSリゾルバは、リクエストが特別なURLになされたときに要求者IPアドレスを返すようにプログラムされます.単にMySQLを問い合わせます.オプアート他のDNSリゾルバを使用して、NxDomain Responseを取得します.これは基本的にドメインが存在しないことを意味します.
# To know you public ipv4 address
dig +short myip.opendns.com @resolver1.opendns.com -4

# To know you public ipv6 address
dig +short AAAA myip.opendns.com @resolver1.opendns.com
それに加えて、GoogleとAkamaiも同様の機能を提供します
dig @ns1-1.akamaitech.net ANY whoami.akamai.net +short

dig @ns1.google.com TXT o-o.myaddr.l.google.com +short
赤井のサービスは少し遅かった.

別名


私は私のZShrcファイルにエイリアスを追加したので、私は単に入力して端末から私の公開IPアドレスを問い合わせることができますpublicip .
alias publicip='dig +short myip.opendns.com @resolver1.opendns.com -4'

ポリバー


# Polybar module

[module/publicip]
type = custom/script
exec = dig @resolver1.opendns.com A myip.opendns.com +short -4
interval = 100
label =  %output%

リファレンス

  • https://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address-in-a-shell-script/81699#81699
  • https://unix.stackexchange.com/questions/335371/how-does-dig-find-my-wan-ip-adress-what-is-myip-opendns-com-doing