Debian 8を使用しています。コマンドラインから外部IPアドレスを取得するにはどうすればよいですか?以下のコマンドがうまくいくと思いました...
myuser@myserver:~ $ /sbin/ifconfig $1 | grep "inet\|inet6" | awk -F' ' '{print $2}' | awk '{print $1}'
addr:192.168.0.114
addr:
addr:127.0.0.1
addr:
しかし、ご覧のように、LAN内のマシンのIPアドレスのみを明らかにしています。全世界のIPを知りたいです。
あなたのDSL /ケーブルモデム/などのルーティング可能なIPを意味します。ルータはありますか?
そのデバイスをクエリする必要がありますOR外部サーバーに接続したときにどのIPが表示されるか尋ねます。これを行う最も簡単な方法は、googleで「what is my ip」などを検索することです計算が検索すると、最初の検索結果が表示されます。コマンドラインから実行する場合は、情報をエコーするスクリプトの出力を確認する必要があります。動的DNSサービスdyndns .orgには使用できるものがあります-このコマンドを試してください
wget http://checkip.dyndns.org -O -
あなたは次のようなものを取得する必要があります
HTTP request sent, awaiting response... 200 OK
Length: 105 [text/html]
Saving to: ‘STDOUT’
- 0%[ ] 0 --.-KB/s <html><head><title>Current IP Check</title></head><body>Current IP Address: 192.168.1.199</body></html>
- 100%[===================>] 105 --.-KB/s in 0s
2017-09-20 14:16:00 (15.4 MB/s) - written to stdout [105/105]
私のIPを一般的なルーティング不可に変更し、太字にしました。
IPだけが必要な場合は、そこから解析する必要があります。すばやく簡単にできますが、私には問題ありません。そして、私はそれを行うためのより安全な方法があると100%確信しています...
wget http://checkip.dyndns.org -O - | grep IP | cut -f 2- -d : | cut -f 1 -d \<
それはあなたにちょうど与えるでしょう
192.168.1.199
これはあなたのパブリックIPに戻ります
Dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
代替(解析を避ける):
IPv4を取得するには
curl -4 icanhazip.com
IPv6を取得するには
curl -6 icanhazip.com