웹페이지에 접속하기 위한 공개 IP를 얻으시겠습니까?

웹페이지에 접속하기 위한 공개 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 호스트 이름과 결과에 반환된 이름이 항상 직접적으로 일치하는 것은 아닙니다.

관련 정보