如题:和服务器建立socket连接,客户端一个机器上有多个ip的时候,怎么指定ip莱和服务器端连接。例如,客户端有,192.168.0.1,192.168.0.2和192.168.0.3,如果服务器端有ip检测,只准许192.168.0.2访问,客户端怎么和服务器端建立连接,并指定通过192.168.0.2IP建立连接?

解决方案 »

  1.   


    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
      

  2.   

    没有到过年还有人在,谢谢回答。
    不过不是我要的答案,获得ip很简单,指定IP建立socket连接现在我做不到。
      

  3.   

    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);
      

  4.   

    怎么帮定呢?
    用bind方法么?
      

  5.   

    to 如果服务器端有ip检测,只准许192.168.0.2访问这个很简单,当server端accept()一个连接时,就可以得到连接端的IP,你可以在此时判断一下是否为合法IP,不是就不连接。
      

  6.   

    结贴TcpClient tcpClientA = new TcpClient (ipLocalEndPoint);