게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
혹시 NAT 장비랑 대화해 보신분 계신가요??
게시물ID : programmer_1114짧은주소 복사하기
작성자 : Cherry
추천 : 0
조회수 : 942회
댓글수 : 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#라이브러리로 변경한 것을 구할 수 있을까요...???


부탁 드립니다..ㅠ
전체 추천리스트 보기
2014-02-12 23:55:54추천 0
설명을 드리면 꽤 장문의 페이지가 되겠네요. 간단하게  IGD는 gateway를 위한 것이고 media device? (media srrver 나 media renderer로 되어야 할텐데... 여튼..) 는 멀티미디어 송수신 및 재생을 위한 장치입니다.
댓글 0개 ▲
2014-02-13 00:02:16추천 0
고로 media devicr로 나온다면 그건 님이 원하는 기능은 제공하지 않습니다. 님이 원하는 WANIP... 서비스는 IGD에만 있습니다. 우선 공유기 바꾸시고(아깝지만..) upnp.org에서 device architecture 보신 후 IGD DCP를 보시면 도움이 되실듯 합니다.
댓글 0개 ▲
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호