Webページにアクセスするための公開IPを取得しますか?

Webページにアクセスするための公開IPを取得しますか?

私のPCを使って訪問するウェブサイトの公開IPを以下から得ることができるようにしたいと思います。

www.google.es - public IP1 
www.cdn.facebook.com - public IP2

など。私はDNSトラフィックを記録してこれを行う必要があると思ったので、他の答えで見つけたソリューションの一部としてWiresharkを試しました。

tshark -f "udp port 53" -Y "dns.qry.type == A and dns.flags.response == 0"

しかし、これは私のルータと私のコンピュータ間の接続だけを表示するように見え、リストは次のペアで埋められます。

192.168.200.250 -> 192.168.200.1
192.168.200.1 -> 192.168.200.250`

答え1

DNSmasqをローカルにインストールし、このオプションをconfファイルに追加してから、log-facility=/var/log/dnsmasq.log log-queriesシステムをDNSリゾルバとして有効にできます127.0.0.1::1私は効果的でした。

次に、目的の形式でデータを抽出し、目的の操作を実行します。

または、ローカルにバインディングをインストールしてください。ほとんどのディストリビューションでは、Bindのデフォルトインストールは非自動キャッシュであり、構成logging {}ブロックを追加します(Bind 9で説明されているように)。構成リファレンス)。

答え2

この小さなスクリプトはあなたが探している結果を提供することができます。私はDNSルックアップを避け、実際のHTTPリクエスト(ポート80 / httpおよび443 / https)を使用することを好みます。

tshark -nlp -f '(port 80 or port 443) and (tcp[tcpflags] & (tcp-syn|tcp-ack)) == (tcp-syn|tcp-ack)' 2>/dev/null |
    stdbuf -oL awk '{print $3}' |
    while IFS= read -r ip
    do
        name=$(dig +short -x "$ip")
        printf "%-16s%s\n" "$ip" "${name:-$ip}"
    done |
    uniq

出力例

212.58.244.27   bbc-vip146.telhc.bbc.co.uk.
78.129.164.123  free.hands.com.
195.20.242.89   195.20.242.89

このコードはHTTPリクエストの結果のみを生成し、DNSクエリを検索すると何も見つかりません。ただし、IPアドレスのrDNSルックアップを実行して名前を生成するため、訪問したHTTPホスト名と結果に返される名前が常に直接一致するわけではありません。

関連情報