web-dev-qa-db-ja.com

IPアドレスからホスト名を解決する

Windowsで、IPアドレスを取得してホスト名を返すコマンドラインツールを探しています。

137
DouglasJose

あなたが探しているコマンドはnslookupと呼ばれ、逆引きで問題なく動作します[〜#〜] iff [〜#〜]誰かが逆ゾーンファイルを設定しましたtは常にします。

上記のすべてが失敗し、特にWindowsマシンを探している場合は、

nbtstat -a 192.168.1.50

返されるデータは、マシンにあるすべてのNetBIOSレコードです。 <20h>レコードタイプを持つものは通常、マシンの名前です。

93
Moose

多くのIPアドレスでは、たとえばping -aを使用できます。

ping -a 209.85.229.106

戻ります

Pinging ww-in-f106.google.com [209.85.229.106] with 32 bytes of data:

Reply from 209.85.229.106...........
61
Marko Carter

IPアドレスを最初の引数としてnslookupコマンドを使用すると、PTRレコード(存在する場合)が返されます。例えば:

nslookup 192.168.1.50
31
Kyle Brandt

Digを使用します。 WindowsポートはISCから入手できます ここ (Zipファイルへのリンクについては、即時ダウンロードボックスを参照してください)。これが Digのマニュアルページリファレンス です。

リバースルックアップレコードが作成されないことが多いというワードのポイント は、非常に真実です。多くの管理者がptrレコードを作成する手間を省いているため、逆引きは失敗することがよくあります。

3
squillman

(Windows 10 x64でテスト済み)

コマンドラインから:

FOR /F "tokens=2 delims= " %A in ('2^>NUL NSLOOKUP "%IP_ADDRESS%" ^| FINDSTR /C:": "') do ECHO %A

スクリプト内:

FOR /F "tokens=2 delims= " %%A in ('2^>NUL NSLOOKUP "%IP_ADDRESS%" ^| FINDSTR /C:": "') do ECHO %%A

2つの(サイド)ノート:

  • NSLOOKUPエラーを抑制するには、2^>NULの代わりに1^>NULを使用する必要があります
  • FINDSTR /Cを使用して、4つの空白文字の後の値を抽出しました。 4つのスペースはName:エントリに対してのみ存在するように見えるため、これは他のローカライズされたシステムで機能させるための唯一の方法のようです。
1
script'n'code

psexec\192.168.0.65ホスト名

DMHD006 192.168.0.65にエラーコード0で終了したホスト名。

0
Sahin