한때 애용하던 api.ipify.org 가 있는데요,
$ curl https://api.ipify.org
처럼 치면 간단히 IP address 를 리턴하는 서비스입니다만..
언젠가부터 저게 안되서 살펴보니 DNS 가 저 도메인을 127.0.0.1로 리턴함..
8.8.8.8 같은걸로 DNS 서버 지정하면 되긴하는데,
우분투는 127.0.0.1 에 DNS 서버 캐시로 띄워놓고 DNS 바꾸기 드럽게 어렵게 해놨잖아요.. (자꾸 원복됨 -.-)
여튼 통신사의 악랄한 수법이 너무 짜증나네요..
다들 아시는 dig 명령어로 그 행태를 몇개 고발해보겠습니다.
원래는 이렇게 나와야 함:
$ dig @8.8.8.8 api.ipify.org ; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> @8.8.8.8 api.ipify.org ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19968 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;api.ipify.org. IN A ;; ANSWER SECTION: api.ipify.org. 300 IN CNAME api4.ipify.org. api4.ipify.org. 600 IN A 64.185.227.156 api4.ipify.org. 600 IN A 173.231.16.76 api4.ipify.org. 600 IN A 104.237.62.212 ;; Query time: 40 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP) ;; WHEN: Wed Jan 10 06:37:54 UTC 2024 ;; MSG SIZE rcvd: 109
통신사 기본 DNS 서버는 https://www.itkairos.com/303 참고
SKB 인터넷 기본 DNS 로 조회시
$ dig @221.139.13.130 api.ipify.org ; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> @221.139.13.130 api.ipify.org ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19583 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;api.ipify.org. IN A ;; ANSWER SECTION: api.ipify.org. 51587 IN A 127.0.0.1 ;; Query time: 4 msec ;; SERVER: 221.139.13.130#53(221.139.13.130) (UDP) ;; WHEN: Wed Jan 10 06:39:54 UTC 2024 ;; MSG SIZE rcvd: 58
KT 는..
$ dig @168.126.63.1 api.ipify.org ; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> @168.126.63.1 api.ipify.org ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6029 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 4d3eb4923304e32a2963f248659e3bf01c95a197e8cf0147 (good) ;; QUESTION SECTION: ;api.ipify.org. IN A ;; ANSWER SECTION: api.ipify.org. 86400 IN A 127.0.0.1 ;; AUTHORITY SECTION: api.ipify.org. 86400 IN NS ns.null0.info. ;; Query time: 4 msec ;; SERVER: 168.126.63.1#53(168.126.63.1) (UDP) ;; WHEN: Wed Jan 10 06:40:48 UTC 2024 ;; MSG SIZE rcvd: 113
LG는.. 저 홈페이지에 나온 DNS 서버 주소가 접속이 안되서 패스 ..
스크립트 짤때 DNS 서버 다른데 쓰게 짤 수가.. 있나.. 암튼 어려운거 같은데.. 그래서.. 아주 골치가 아프네요..
통신사 DNS 서버는 왜 이런 악랄한 짓을 하는지.. -.-
별도의 조력 서버 없이 자기 IP 얻는 방법.. 어떤 방법 쓰시나요?
그나저나 우분투 이야기만 들어도 구성을 복잡하게 해놨군요..
근데 VPN 통해서 연결 되거나 이러면.. 제대로 못 가지고 오는 경우가 있더라구요
--dns-servers 는 사용할 dns 서버를 지정하는 옵션입니다.
* 만약 에러가 난다면 설치된 curl 패키지가 옵션을 지원하지 않는 버전입니다. 꼭 필요하시다면 직접 컴파일 하셔야 합니다.
예) curl --dns-servers 1.1.1.1,8.8.8.8 https://api.ipify.org
--resolve 는 dns 서버를 쓰지 않고 바로 ip를 지정하는 방식 입니다.
예) curl --resolve api.ipify.org:443:64.185.227.156 https://api.ipify.org