게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
혹시 NAT 장비랑 대화해 보신분 계신가요??
게시물ID : programmer_1114짧은주소 복사하기
작성자 : Cherry
추천 : 0
조회수 : 937회
댓글수 : 2개
등록시간 : 2014/02/09 18:04:16
제가 upnp를 이용한 포트포워딩 리스트를 NAT에 등록시키는 프로그램을 열심히 C#으로 (....??)만들고 있습니다.


어쩌다 보니 구하게 된 C++언어로 된 upnp로 포트포워딩 하는 소스코드는 Natupnp.h, UPnP.h라는 제가 알지 못하는 헤더만 쓰더라구요..;;


그래서 NAT의 원리를 이해해보고자 직접 C#으로 된 코드를 구하여 하나씩 분석해보고 있는데....

(* 즉, 현재 제가 들고 있는 것은 C#으로 된 코드, C++로 된 코드 입니다.)

C#으로 된 코드는 브로드 캐스팅을 하여 직접 NAT장비를 찾고 해당 장비가 upnp를 지원하는지 메시지를 보내어 지원하면 외부 ip를 받아와서 포트포워드 등록을 하는 동작을 하더라구요....


그런데 어째서인지 제 공유기는 upnp가 허용되어 있음에도 불구하고 C#으로 된 코드는 동작 중간에 멈추더라구요...;;;


그래서 원인을 살펴보니 이 코드는 NAT가 DeviceType이 InternetGatewayDevice이면서 WANIPConnection이라는  서비스를 지원하면 해당 서비스로 GetExternalIPAddress명령을 보내어 외부 IP주소를 얻고 그 IP주소를 upnp로 포트포워딩 하는 것인데.... 제 공유기는 InternetGatewayDevice가 아닌 MediaDevice로 뜨더라구요..;;(그리고 WANIPConnection이라는 서비스 또한 존재하지 않았습니다.)


그래서 ConnectionManager라는 서비스로 GetExternalIPAddress라는 메시지를 보내봤는데 HTTP 에러코드 415(Unsupported Media Type)가 뜨더라구요..;;;


음..... 너무 횡설수설 한거 같으니 제 질문만 정리합니다...

1. NAT가 InternetGatewayDevice인지 MediaDevice인지는 제조시 결정되는건가요?
2. 좀더 간단히 upnp를 이용한 포트포워딩 방식을 설명한 사이트나 책을 추천해주세요..ㅠㅠ
3. 아니면 Natupnp.h나 UPnP.h를 C#라이브러리로 변경한 것을 구할 수 있을까요...???


부탁 드립니다..ㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호