Example #1
0
        public bool setIP(string ip)
        {
            Trace.TraceInformation("Interface IP Changing");
            for (int i = 0; i < 5; i++)
            {
                if (IcsManager.setIpWMI(connectionGuid, ip, "255.255.255.0"))
                {
                    Trace.TraceInformation("Interface IP Changed");
                    break;
                }
                else
                {
                    Trace.TraceInformation("Interface IP Change failed");
                }
                Thread.Sleep(2000);
            }
            string          trimmedIp      = ip.TrimEnd("0123456789".ToCharArray());
            InternetAddress privateAddress = InternetAddress.Parse(ip);

            dhcpManager.DhcpInterfaceAddress = IPAddress.Parse(ip);
            dhcpManager.StartAddress         = InternetAddress.Parse(trimmedIp + "1");
            dhcpManager.EndAddress           = InternetAddress.Parse(trimmedIp + "255");
            dhcpManager.Subnet  = InternetAddress.Parse("255.255.255.0");
            dhcpManager.Gateway = privateAddress;
            dhcpManager.DnsServers.Add(privateAddress);
            for (int i = 1; i < 5; i++)
            {
                try {
                    Socket sock = dhcpManager.configureSocket();
                    sock.Close();
                    dhcpManager.Start();
                    return(true);
                } catch (SocketException e) {
                    if (e.ErrorCode == 10049)
                    {
                        Trace.TraceInformation("Interface IP waiting for ready.");
                        dhcpManager.Stop();
                        Thread.Sleep(2000);
                    }
                }
            }
            return(false);
        }