Unix

使用 Unix shell 從主機名獲取 IP 地址的簡單方法

  • November 18, 2020

從主機名獲取 IP 地址的最簡單方法是什麼?

我正在考慮嘗試 aping並從輸出中解析它。但是,這似乎不太好,並且可能不會在所有系統上以相同的方式工作。

我四處搜尋並找到了解決方案nslookup,但這不適用於/etc/hosts.

您可以使用標準系統呼叫來做到這一點。這是 Perl 中的一個範例:

use strict; use warnings;
use Socket;
use Data::Dumper;

my @addresses = gethostbyname('google.com');
my @ips = map { inet_ntoa($_) } @addresses[4 .. $#addresses];
print Dumper(\@ips);

產生輸出:

$VAR1 = [
         '74.125.127.104',
         '74.125.127.103',
         '74.125.127.105',
         '74.125.127.106',
         '74.125.127.147',
         '74.125.127.99'
       ];

(在命令行上,同樣的腳本可以寫成perl -MSocket -MData::Dumper -wle'my @addresses = gethostbyname("google.com"); my @ips = map { inet_ntoa($_) } @addresses[4 .. $#addresses]; print Dumper(\@ips)':)

您可以在其他語言中類似地執行此操作 - 請參閱系統呼叫的手冊頁man -s3 gethostbyname等。

引用自:https://serverfault.com/questions/170706