System.Management.ManagementObjectSearcher wmi = new System.Management.ManagementObjectSearcher("select * from win32_networkadapterconfiguration"); foreach (System.Management.ManagementObject wmiobj in wmi.Get) { if (System.Convert.ToBoolean(wmiobj("ipenabled"))) { //输出 (New String() {wmiobj("ipaddress")(0), wmiobj("macaddress")}, -1) } }这样就能得到你的所有网卡的IP
MSDN的例子,希望对你有帮助 //Creates a TCPClient using a local end point. IPAddress ipAddress = Dns.GetHostEntry (Dns.GetHostName ()).AddressList[0]; IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 0); TcpClient tcpClientA = new TcpClient (ipLocalEndPoint);
怎么帮定呢? 用bind方法么?
to 如果服务器端有ip检测,只准许192.168.0.2访问这个很简单,当server端accept()一个连接时,就可以得到连接端的IP,你可以在此时判断一下是否为合法IP,不是就不连接。
结贴TcpClient tcpClientA = new TcpClient (ipLocalEndPoint);
System.Management.ManagementObjectSearcher wmi = new System.Management.ManagementObjectSearcher("select * from win32_networkadapterconfiguration");
foreach (System.Management.ManagementObject wmiobj in wmi.Get) {
if (System.Convert.ToBoolean(wmiobj("ipenabled"))) {
//输出 (New String() {wmiobj("ipaddress")(0), wmiobj("macaddress")}, -1)
}
}这样就能得到你的所有网卡的IP
不过不是我要的答案,获得ip很简单,指定IP建立socket连接现在我做不到。
//Creates a TCPClient using a local end point.
IPAddress ipAddress = Dns.GetHostEntry (Dns.GetHostName ()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 0);
TcpClient tcpClientA = new TcpClient (ipLocalEndPoint);
用bind方法么?