Microsoft MVP성태의 닷넷 이야기
.NET : 35. UDP 패킷의 경유 IP 설정 (Source Routing) [링크 복사], [링크+제목 복사]
조회: 10684
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

How to programmatically inject a list of IP Addresses into the IP Options header in the IP Datagram [ Source Routing ]?
; http://blogs.msdn.com/winsdk/archive/2009/11/05/how-to-programmatically-inject-a-list-of-ip-addresses-into-the-ip-options-header-in-the-ip-datagram-source-routing.aspx

UDP 에 이런 기능이 있는지 몰랐군요. ^^;

IPPROTO_IP, IP_OPTIONS 인자로 setsockopt 를 하는 경우 같이 넘겨준 IP 를 경유해서 최종 목적지로 패킷이 전달되게 됩니다. 읽고 보니, 궁금해지는 데요. 그렇다면 경유하는 IP의 NIC 카드 레벨에서 라우팅을 해주는 것인가요? 오호... 외부망에서 UDP 를 내부망으로 보낼 수 있다는 의미인데... 테스트 한번 해봐야겠군요. ^^

코드가 간단하니 여기에 옮겨 봅니다.

1: \\Define a structure for LSR
2: typedef struct
3: {
4: unsigned char Code;
5: unsigned char Len;
6: unsigned char Offset;
7: unsigned long Addrs[2];
8: }LSR;
9:
10: //Set the Loose Source Routing Option:
11: LSR SourceRoute;
12: ZeroMemory(&SourceRoute,sizeof(LSR));
13:
14: SourceRoute.Code = 0x83; // Loose Source Routing.
15: SourceRoute.Len = 11;
16: SourceRoute.Offset = 4;
17: SourceRoute.Addrs [0] = inet_addr("a.b.c.d");
18: SourceRoute.Addrs [1] = inet_addr("x.y.z.q");
19:
20: //Set the source routing on the socket handle.
21: int iErr = setsockopt(SocketHandle,IPPROTO_IP,IP_OPTIONS,(char*)&SourceRoute,SourceRoute.oLen);








[최초 등록일: ]
[최종 수정일: 11/10/2009]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

비밀번호

댓글 작성자
 




1  2  3  [4]  5  6  7  8 
NoWriterDateCnt.TitleFile(s)
120정성태9/14/20074705Vista : 7. Gadget Samples for Windows Sidebar
119정성태8/23/20074956.NET 3.5 : 3. WCF 서비스에서 HTTP 헤더 설정
118정성태6/20/20075478.NET 3.5 : 2. LINQ - 페이징 구현
117정성태6/20/20075135.NET : 23. Silverlight 응용 프로그램 제작
116정성태6/19/20075459.NET : 22. Bluetooth on Managed code [2]
115정성태6/17/20074829레지스트리 : 4. .NET Framework 및 Visual Studio 관련 레지스트리 키
114정성태6/9/20075191레지스트리 : 3. DWM enable/disable
113정성태6/9/20074658Vista : 6. 웹 사이트 추가/삭제 예제 코드
112정성태6/7/20074623Vista : 5. Transacted NTFS 코드 예제들
111정성태6/6/20074904.NET 3.5 : 1. LINQ 를 이용하여 DB 데이터를 XML 로 변환
110정성태6/2/20074810레지스트리 : 2. Aero Glass 효과를 느리게 보여주는 설정
109정성태5/19/200710335공통 코딩 규약 : 4. 닷넷 직렬화 방법 - 이진 직렬화(Binary Serialization) 사용 패턴
108정성태5/19/20074780공통 코딩 규약 : 3. 탭 문자 설정 [1]
107정성태5/11/20074671명령행 : 5. 비스타 - Auditing 관련 옵션 제어
106정성태5/11/20075650.NET 3.0 : 2. WPF - InvokeRequired 대신 CheckAccess 호출
105정성태5/9/20074441명령행 : 4. [PS] 같은 이름을 가진 프로세스 중에서 제일 먼저 띄운 인스턴스를 제외하고 모두 종료
104정성태5/3/20074423명령행 : 3. [롱혼] ServerManagerCmd.exe
103정성태4/18/20074474웹폼 코딩 규약 : 1. 서버측 웹폼 컨트롤 - 클라이언트 측 이벤트를 노출시키는 방법
102정성태4/18/20075876COM : 3. ActiveScript의 문법 오류 검사 [3]
101정성태4/18/20075080레지스트리 : 1. 비스타 - IIS 서비스 설치 여부
100정성태3/29/20074529명령행 : 2. AppPool 재시작
99정성태3/22/20074702명령행 : 1. 닷넷 웹 사이트 소스를 공유 폴더에 위치한 경우 설정
98정성태3/7/20075173.NET : 21. 저장 프로시저(SP)에 관한 스키마 정보 알아내기
97정성태3/7/20074528.NET 3.0 : 1. Boilerplate code for custom Encoder Binding Elements
96정성태3/7/20075262Vista : 4. 마스터 볼륨을 조정하는 방법
95정성태2/23/20074970.NET : 20. .Net Zip Library/Utility updates and fixes
1  2  3  [4]  5  6  7  8