回答
您的问题并不具体也不是很详细,所以您会收到一个广泛的解释。微软.Net Framework 4.5实际上有一个类来处理这个叫做NetworkInterface
的类。
The Microsoft Developer Network actually explains in great detail these class requirements.
此特定类封装数据网络接口,也 称为适配器,在本地计算机上。您不会创建此类的实例 ; GetAllNetworkInterfaces方法返回一个数组,其中 包含本地计算机上每个网络接口的此类的一个实例。
因此,您可以看到它需要半特定的细节,否则会失败。因为它可能会尝试未连接的适配器。您的问题让我相信,您试图将ping
有效数据包发送到您的本地适配器以验证是否有响应。
你甚至有NetworkInformation
命名空间,它提供了一系列相关的information。一个非常,非常简单的实现会是这样:
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
请求127.0.0.1
因为这是回送地址的网卡是目前正在使用。
答复将指示它是否正在接收您的数据包。
是的,环回应该会收到回复,以知道您的卡正在使用中。但在大多数情况下,它可以被忽略;因为只有当您收到请求时,地址才会显示有用的信息。
您的其他选项,如果你不喜欢Ping
想法。是简单地设置您的NetworkInterface
听一变:
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterface n in adapters)
{
Console.WriteLine(" {0} is {1}", n.Name, n.OperationalStatus);
}
这是两个有效的方法来测试从您卡的响应。正如我上面所说的,除非你专门发送请求到回送地址,否则回送不会主动“接收”任何东西。
希望有帮助。
我认为问题是回送适配器根本不接收数据包。事件,如果我ping适配器我看不到该环回适配器的本地连接状态告诉我,一个数据包收到。 – 2013-03-14 22:47:19
它改变了,一些网络管理员改变它们。就其本质而言,在那里行业'127.0.0.1'实际上是不好的做法,他们通常推荐我认为'127.0.1.1'或'127.0.0。5'。尽管不能完全记住。这样人们不会淹没本地适配器。 – Greg 2013-03-14 22:56:13
您无法使用PCAP从Windows上的回送适配器捕获数据包。但是,您可以使用名为RawCAP的工具来执行此操作,并输出.pcap文件(您可以在WireShark中打开:http://wiki.wireshark.org/CaptureSetup/Loopback)。
难道他不能从PCap发送'ICMP',然后在应用程序中使用'NetworkInformation'类对他的本地'127.0.0.1'进行ping来验证它?甚至仅仅使用'NetworkInformation'来发送ping(ICMP)请求? – Greg 2013-03-14 22:34:33
如果他使用PCAP,他试图在网络上嗅探数据包。最有可能尝试调试一些使用本地套接字的进程间通信。 – 2013-03-14 22:37:09
我不知道他是否意味着捕获数据包?我刚刚意识到你说Capture,是的,如果他确实表示你确实是对的。 – Greg 2013-03-14 22:37:13
- 1. 端口在错误的网络接口上收听
- 2. Python:从端口接收UDP数据包
- 3. 网络接口不包含“”的定义
- 4. 从python网络接口读取和处理数据包
- 5. 使用数据包套接字接收广播数据包
- 6. 在我的数据包收听器中未收到数据包
- 7. 接收到的网络数据包中的内存对齐问题
- 8. 从android到网络接收数据的android错误
- 9. 复制通过网络接收的数据(数据包有效载荷)
- 10. 未收到Android设备的所有网络接口
- 11. 无法在辅助接口上接收UDP/IPv6数据包
- 12. StreamCorruptedException接收到多个数据包
- 13. 绑定到Apache的网络接口httpclient
- 14. wifi网络接口名称
- 15. Android x86网络接口Down
- 16. 网络接口 - VB.Net/Java
- 17. FreeBSD:网络接口信息
- 18. R:sna(社交网络分析)包:数据帧到邻接矩阵
- 19. 如果我使用一个侦听套接字在两个端口上侦听,那么我如何知道哪个端口接收到数据包?
- 20. 通过网络套接字发送和接收相同的数据通过网络套接字
- 21. 发送数据包(PCAP,WLAN,C)到接收器,无需连接接收
- 22. uBudu网状网络接收消息
- 23. 使用Java从WLAN网络侦听SSL数据包?
- 24. 收听AUX连接
- 25. 如何在侦听所有设备上的网络流量时识别数据包的接口?
- 26. 可能坐在网络上并接收TCP流/ UDP数据报?
- 27. 从网络接收数据时重新加载列表查看
- 28. 如何接收具有与侦听接口不同的已知目标MAC的数据包UDP
- 29. 无法连接到特定的网络接口
- 30. 当收到UDP数据包时,该端口与监听端口不匹配
我试图在Microsoft Loopback Adapter本身上发送数据包,但它没有听到它发送的数据包。问题是:它听到什么吗? – 2013-03-14 22:12:06