C#을 사용하여 IP 패킷을 보내려고합니다.왜이 IP 패킷을 보낼 수 없습니까?
destAddress = IPAddress.Parse("192.168.0.198"),
destPort = 80;
// Create a raw socket to send this packet
rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
// Bind the socket to the interface specified
IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.0.140"),0);
rawSocket.Bind(iep);
// Set the HeaderIncluded option since we include the IP header
rawSocket.SetSocketOption(socketLevel, SocketOptionName.HeaderIncluded, 1);
// Send the packet!
int rc = rawSocket.SendTo(builtPacket, new IPEndPoint(destAddress, destPort));
Console.WriteLine("sent {0} bytes to {1}", rc, destAddress.ToString());
builtPacket의 내용은 다음과 같습니다. 그것은 TCP SYN 패킷을 포함하는 IP 패킷입니다 (어쨌든 내가 만든 것입니다). 00 00 00 00 00 00 00 00
45 00 00 28 00 00 00 00 02 06 36 6E C0 A8 00 8C
C0 A8 00 C6 14 1E 00 50
05 02 FF FF E6 4F 00 00
출력은 다음과 같습니다
sent 40 bytes to 192.168.0.198
문제는 내가 Wireshark를 추적에서 아무것도 표시되지 않습니다이다. 데이터가 Wireshark가 그것을 볼 수있는 스택을 충분히 밑도는 것 같지 않습니까? 브라우저를 사용하여 192.168.0.198에 연결하면 Wireshark가 모든 패킷을 표시하지만 위 코드 및 데이터를 사용하여 패킷을 보내려고하면 아무것도 표시되지 않습니다.
내 설정 :이 권한 문제 없습니다, 그래서
내가 관리자로 실행하고 있습니다.
는 Windows7은
가
무선 연결은 내가 잘못 뭐하는 거지
(IP는 설정은 192.168.0.140로 자사의 IP를보고) (A VM에서 실행되지 않음)?
나는 Occam 's Razor가 여기에 적용되지만, 몇 시간 동안 이것을보고 있었고 무엇이 잘못되었는지를 알 수는 없다.
wireshark에 필터가 설정되어 있습니까? – Default
수신자가 패키지를 가져 옵니까? –
나는 "192.168.0.198 호스트"필터를 사용했지만 필터를 사용하지 않았지만 내 응용 프로그램에서도 아무것도 얻지 못했습니다. – TonyM