
这是个难题,按说正常的方法你只能获得本地两个ip 网关的两个ip 和一个外网的ip 因为只有一个默认的网关ip,你获取的ip是通过这个网关获取的。想获取另外网关的ip,需要再将默认路由设到另外一个网关ip 这两个动作就决定你获取的时候必须有一次换路由route add gw xxxxxxxxxx 2552552550
要么你就通过两个路由器的>
方法一:
1、对着桌面的“网络”,右键--属性
2、点击“更改适配器设置”
3、找到你连接的网络,右键--状态
4、点击“详细信息”
方法二:
点击开始菜单,输入cmd,回车
在命令行中输入ipconfig/all
回车
方法三:
找到你的网络连接,物理地址就是你的网卡地址
在应用层上不好截获,通过写协议驱动,可以截获通过你电脑上所有的网卡的数据包,在下个WDK,里面有一个现成的例子Ndisprot,可以参照修改成适合自己的驱动,然后通过应用层来调用下层的这个协议驱动,回到应用层后再对这个包进行解析。
代码如下:
using System;using SystemDrawing;
using SystemWindowsForms;
using SystemManagement; //必须在项目中添加SystemManagement引用!
using SystemCollectionsGeneric;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1DropDownStyle = ComboBoxStyleDropDownList;
comboBox1ItemsAddRange(GetNetcardName()ToArray());
}
// 获取计算机上安装的网卡名称
private List<string> GetNetcardName()
{
List<string> cardNames = new List<string>();
ManagementClass mc =
new ManagementClass("Win32_NetworkAdapter");
ManagementObjectCollection moc = mcGetInstances();
foreach (ManagementObject mo in moc)
{
cardNamesAdd(mo["Description"]ToString());
}
return cardNames;
}
}
}
以上就是关于获取多个网卡的IP以及外网地址C++/VC全部的内容,包括:获取多个网卡的IP以及外网地址C++/VC、如何获取网卡相关信息、VC如何截获指定网卡封包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)