web-dev-qa-db-ja.com

コマンドラインからIPアドレスを取得するにはどうすればよいですか?

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を知りたいです。

6
Dave

あなたの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

9
ivanivan

これはあなたのパブリックIPに戻ります

Dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
12
user3411123

代替(解析を避ける):

IPv4を取得するには

curl -4 icanhazip.com

IPv6を取得するには

curl -6 icanhazip.com
5
Nuno Dio