일반가정에서 사용되는 공유기를 포함해서 대부분의 라우터 장치는 UPnP 프로토콜을 지원합니다.
그리고 UPnP가 지원되면 NAT Traversal API를 이용해서 실제로 사용되는 외부 공인 아이피를 프로그래밍 방법으로
알아내는 것도 가능합니다. COM에 대한 이해를 하고 있으면 되죠. 인터페이스가 C++ COM으로 되어 있거든요.
정영훈 님이 쓰신 글 :
: 없다고 봐야합니다.
: NAT 는 라우터의 기능입니다.
:
: 즉 라우터를 통해 네트워크 밖으로 나갈 때 IP가 변환되는 것인지라 알 수가 없습니다.
: 위와 같은 이유로
http://api.ipify.org/?format=json 와 같은 웹서비스를 사용해서 알아오곤 합니다.
:
: 초보개발자 님이 쓰신 글 :
: : 제가 설명이 부족했던것 같습니다.
: :
: : 예를 들어, TIdIPWatch 컴포넌트를 사용해서 IdIPWatch->LocalIP(); 이렇게 하면, 내 컴퓨터의 아이피를 확인할 수 있습니다.
: : 하지만 공유기를 사용했을 경우에는 192 로 시작하는 내부아이피가 확인이 됩니다.
: :
: : 웹에서 사용하는 REMOTE_ADDR 처럼, 공유기를 사용해도 공인아이피를 확인할수 있는 컴포넌트 또는 명령어는 없나요?
: : 이것을 알고 계신 개발자 분들이 계시면 답변 꼭 부탁드리겠습니다.
: :
: : 님이 쓰신 글 :
: : : 초보개발자 님이 쓰신 글 :
: : : : c++빌더6 을 사용하는 초보개발자 입니다.
: : : :
: : : : 프로그램 실행시 공인아이피를 확인해서 해당되는 아이피가 아니면 실행되는 프로그램을 강제종료하는 로직입니다.
: : : :
: : : : 공유기를 사용하고 있는데, 여러가지 방법을 써봤지만, 192 로 시작하는 내부아이피만 확인이 됩니다.
: : : :
: : : : 공인아이피를 확인하는 방법은 없는건가요?
: : :
: : :
: : : 보통 가정에서 많의 쓰이는 공유기 같은 간이 라우팅 장치는
: : : 대부분 192.168.0.0 ~ 192.168.255.255 범위를 장치 내의 dhcp 기능으로 사설 아이피를 할당해서 사용하지만
: : : 사설 아이피는 위 레인지 이외에 172.16.0.0 ~ 172.31.255.255 와 10.0.0.0 ~ 10.255.255.255 도 있습니다
: : : 구체적인 용도는 tcp/ip 스펙을 참조하시고.
: : :
: : : 위 레인지에 들지 않는 아이피라면 공인 아이피라고 보면 되는 거죠