Microsoft 루프백 어댑터가 PcapDotNet 또는 다른 것을 사용하여 패킷을 수신 (수신)하도록해야합니다. 어떻게해야합니까?네트워크 인터페이스가 패킷을 수신 (수신)하도록하십시오.
감사합니다.
Microsoft 루프백 어댑터가 PcapDotNet 또는 다른 것을 사용하여 패킷을 수신 (수신)하도록해야합니다. 어떻게해야합니까?네트워크 인터페이스가 패킷을 수신 (수신)하도록하십시오.
감사합니다.
귀하의 질문은 구체적이거나 자세하지 않으므로 광범위한 설명을 받으실 수 있습니다. Microsoft .Net Framework 4.5에는 정확히 NetworkInterface
이라는 정확히 처리 할 클래스가 있습니다.
The Microsoft Developer Network actually explains in great detail these class requirements.
이 특정 클래스는 로컬 컴퓨터, 네트워크 인터페이스, 어댑터로 알려진 또한 에 대한 데이터를 캡슐화합니다. 이 클래스의 인스턴스 을 만들지 마십시오. GetAllNetworkInterfaces 메서드는 로컬 컴퓨터의 각 네트워크 인터페이스에 대해이 클래스의 인스턴스가 인 배열을 반환합니다.
반원형처럼 자세한 정보가 필요합니다. 그렇지 않으면 실패합니다. 연결되지 않은 어댑터를 사용해 볼 수도 있습니다. 귀하의 질문에 대답을 확인하기 위해 귀하의 로컬 어댑터에 ping
유효한 패킷을 시도 믿을 날 나뭇잎.
information의 관련 정보를 제공하는 NetworkInformation
네임 스페이스가 있습니다. 즉, 현재 사용중인 네트워크 카드에 루프백 주소는 당신이 단순히 127.0.0.1
해당 Ping
요청을 사용할 수 있습니다
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
// Default Time To Live (TTL) but don't fragment request.
options.DontFragment = true;
// Create a buffer of 32 Bytes:
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
// Timeout
int timeout = 120;
// Ping and Request Reply
pingReply reply = pingSender.Send(args[0], timeout, buffer, options);
if(reply.Status == IPStatus.Success)
{
Console.WriteLine("Address: {0}, reply.Address.ToString());
Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
그리고 :처럼 아주, 아주 간단한 구현 될 것이다.
답장은 패킷을 수신하고 있는지 여부를 나타냅니다.
예, 루프백은 카드 사용 중임을 알리는 응답을 받아야합니다. 그러나 대부분의 경우 무시할 수 있습니다. 요청을 받으면 주소 만 유용한 정보를 표시합니다.
Ping
아이디어가 마음에 들지 않으면 다른 옵션을 선택하십시오. 단순히 변화를 청취 할 NetworkInterface
를 설정하는 것입니다 : 그 카드의 응답을 테스트하기 위해 두 개의 유효한 방법은
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterface n in adapters)
{
Console.WriteLine(" {0} is {1}", n.Name, n.OperationalStatus);
}
. 앞에서 언급했듯이 루프백은 특별히 루프백 주소로 요청을 보내지 않는 한 적극적으로 "수신"하지 않습니다.
잘하면 도움이됩니다.
문제는 루프백 어댑터가 패킷을 전혀받지 않는다는 것입니다. 이벤트가 어댑터에 ping을 걸면 해당 루프백 어댑터의 로컬 영역 연결 상태가 단일 패킷을 수신했다는 것을 알 수 없습니다. –
일부 네트워크 관리자가 변경 되었습니까? 사실 업계에서는'127.0.0.1'이 실제로 나쁜 습관이기 때문에 보통'127.0.1.1'이나'127.0.0 '이라고 생각합니다.5 '. 그래도 완전히 기억할 수는 없습니다. 그런 식으로 사람들은 지역 어댑터에 범람하지 않습니다. – Greg
PCAP를 사용하여 Windows의 루프백 어댑터에서 패킷을 캡처 할 수 없습니다. 그러나 RawCAP이라는 도구를 사용하여 대신 .pcap 파일을 출력 할 수 있습니다 (WireShark에서 열 수 있음 : http://wiki.wireshark.org/CaptureSetup/Loopback).
그는 PCap에서'ICMP'를 보내지 못했고 응용 프로그램에서'NetworkInformation' 클래스를 사용하여 로컬 '127.0.0.1'에 ping을 수행하여 그것을 확인합니까? 또는 'NetworkInformation'만 사용하여 핑 (ICMP) 요청을 보내시겠습니까? – Greg
그가 PCAP를 사용 중이라면 그는 네트워크에서 패킷을 스니핑하려고합니다. 대부분 로컬 소켓을 사용하는 일부 프로세스 간 통신을 디버깅하려고합니다. –
그가 패킷을 캡처하는 것을 의미하는지 나는 모른다. 방금 네가 포획이라고 말한 걸 깨달았다. 네가 그랬다면 네 말이 맞았다는 것을 의미한다. – Greg
Microsoft Loopback Adapter 자체에서 패킷을 보내려고했지만 패킷이 전송되지 않습니다. 질문은 : 그것은 무엇이든들을 수 있는가? –