16進IPアドレスをホスト名に変換

16進IPアドレスをホスト名に変換

ホスト名と16進IPアドレスを切り替えたいです。私はそれをインストールし、syslinux-utilsそれDebian Stretchを提供しますgethostip

gethostip -x google.com 
D83ACD2E

D83ACD2Eホスト名に戻すにはどうすればよいですか?

以前のバージョンの Debian では、Wheezy次のコマンドを使用できました。getaddrinfo' and 'getnameinfo

# getaddrinfo google.com
D83ACD4E
# getnameinfo D83ACD4E  
mil04s25-in-f14.1e100.net

このツールは見つかりませんDebian Stretch。これらのツールは他のツールに置き換えられましたか?

ベストアンサー1

D83ACD2E16進数に変換して(ネットワークバイト順!)32ビット整数に圧縮し、その整数の(符号なし!)文字コンポーネントをドットで連結して印刷できます。 (詳細があれば可能です。組み立て.)

$ perl -e 'printf "%v*d\n", ".", pack "N", hex shift' D83ACD2E
216.58.205.46
$ 

複雑さの少ない10進フラグはgethostip値を直接提供するかhostnslookupgetent hosts

$ gethostip -d google.com
172.217.3.206
$ host `gethostip -d google.com`
206.3.217.172.in-addr.arpa domain name pointer sea15s12-in-f206.1e100.net.
206.3.217.172.in-addr.arpa domain name pointer sea15s12-in-f14.1e100.net.
$ getent hosts `gethostip -d google.com`
172.217.3.206   sea15s12-in-f206.1e100.net
$ 

これは、特定のIPアドレスに関連付けられているDNS PTRレコードであり、設定されていない、設定されていない、または探しているホスト名である場合とそうでない場合があります。

または、あちこちで検索してみるとapt-file

$ sudo apt-file search getaddrinfo | grep 'getaddrinfo$'
gnulib: /usr/share/gnulib/modules/getaddrinfo
libruli-bin: /usr/bin/ruli-getaddrinfo
libsocket-getaddrinfo-perl: /usr/bin/socket_getaddrinfo
$ sudo apt-file search getnameinfo | grep 'getnameinfo$'
libsocket-getaddrinfo-perl: /usr/bin/socket_getnameinfo
$ sudo apt-get install libsocket-getaddrinfo-perl
...

しかし、そのバージョンはあなたのシンボルをサポートしていないようです。

$ socket_getnameinfo D83ACD4E
Unrecognised address or port format - Name or service not known
$ 

0xただし、通常の16進プレフィックスを使用する場合

$ socket_getnameinfo 0xD83ACD4E
Resolved address '0xD83ACD4E'

  mil04s25-in-f78.1e100.net
$ 

(マンページによると、Debianはプログラムの名前を変更しましたが、今はLeoNerdが先日IRCで言及したことを覚えています...)

これを受け入れることに固執する場合は、D83ACD4E上記の方法を使用してhex値をデジタル化してパッキングし、モジュールSocket機能を使用して盲目的に処理できます。ただし、実際にはエラーチェック、入力検証、テストなどのスクリプトである必要があります。など

$ perl -MSocket=:addrinfo,pack_sockaddr_in \
  -E '($e,$h)=getnameinfo pack_sockaddr_in(0, pack("N", hex shift));' \
  -E 'say $h' D83ACD2E
mil04s24-in-f46.1e100.net
$ 

おすすめ記事