示例#1
0
        static private IPInfo GetIPInfoFromShell()
        {
            // Get Ip Info from Shell

            IPInfo IP;

            Shell Shell = new Shell()
            {
            };


            switch (OS.Type)
            {
            case OSType.Windows:
                Shell.Command = "ipconfig";
                Shell.Pattern = @"IPv4.*: (?<ip>.*)\r\n.*: (?<net>.*)\r\n.*: (?<gw>.*)\r\n";
                break;

            case OSType.Linux:
                Shell.Command   = "ifconfig";
                Shell.Arguments = "eth0";
                Shell.Pattern   = @"inet\s(?<ip>.*)\snetmask\s(?<net>.*)\sbroadcast\s(?<gw>.*)";
                break;

            case OSType.MacOSX:
                Shell.Command   = "ifconfig";
                Shell.Arguments = "en0";
                Shell.Pattern   = @"inet\s(?<ip>.*)\snetmask\s(?<net>.*)\sbroadcast\s(?<gw>.*)";
                break;

            default:
                break;
            }

            if (Shell.Execute())
            {
                IP = new IPInfo(Shell.Values["ip"].Value, Shell.Values["net"].Value, Shell.Values["gw"].Value);
            }
            else
            {
                IP = new IPInfo();
            }
            IP.Source = IPsource.Shell;
            IP.Shell  = Shell;
            return(IP);
        }
示例#2
0
        static private IPInfo GetIPInfoFromFrameWork()
        {
            // SIR :06-08-2015 : Cannot rely on this method because of some classes are not implemented in Mono like : IPv4Mask
            IPInfo  IP;
            Boolean IsNetworkAvailable = NetworkInterface.GetIsNetworkAvailable();

            if (IsNetworkAvailable)
            {
                var Nic            = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(i => i.NetworkInterfaceType == NetworkInterfaceType.Ethernet);
                var IPProp         = Nic.GetIPProperties();
                var UnicastAddress = IPProp.UnicastAddresses.FirstOrDefault(ua => ua.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
                IP = new IPInfo(UnicastAddress.Address.ToString(), UnicastAddress.IPv4Mask.ToString(), IPProp.GatewayAddresses.FirstOrDefault().Address.ToString());
            }
            else
            {
                IP = new IPInfo();
            }
            IP.Source = IPsource.FrameWork;
            return(IP);
        }
示例#3
0
 private static IPInfo GetIPInfoFromFrameWork()
 {
     // SIR :06-08-2015 : Cannot rely on this method because of some classes are not implemented in Mono like : IPv4Mask
     IPInfo IP;
     Boolean IsNetworkAvailable = NetworkInterface.GetIsNetworkAvailable();
     if (IsNetworkAvailable)
     {
         var Nic = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(i => i.NetworkInterfaceType == NetworkInterfaceType.Ethernet);
         var IPProp = Nic.GetIPProperties();
         var UnicastAddress = IPProp.UnicastAddresses.FirstOrDefault(ua => ua.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
         IP = new IPInfo(UnicastAddress.Address.ToString(), UnicastAddress.IPv4Mask.ToString(), IPProp.GatewayAddresses.FirstOrDefault().Address.ToString());
     }
     else
     {
         IP = new IPInfo();
     }
     IP.Source = IPsource.FrameWork;
     return IP;
 }
示例#4
0
        private static IPInfo GetIPInfoFromShell()
        {
            // Get Ip Info from Shell

            IPInfo IP;

            Shell Shell = new Shell() { };

            switch (OS.Type)
            {
                case OSType.Windows:
                    Shell.Command = "ipconfig";
                    Shell.Pattern = @"IPv4.*: (?<ip>.*)\r\n.*: (?<net>.*)\r\n.*: (?<gw>.*)\r\n";
                    break;
                case OSType.Linux:
                    Shell.Command = "ifconfig";
                    Shell.Arguments = "eth0";
                    Shell.Pattern = @"inet\s(?<ip>.*)\snetmask\s(?<net>.*)\sbroadcast\s(?<gw>.*)";
                    break;
                case OSType.MacOSX:
                    Shell.Command = "ifconfig";
                    Shell.Arguments = "en0";
                    Shell.Pattern = @"inet\s(?<ip>.*)\snetmask\s(?<net>.*)\sbroadcast\s(?<gw>.*)";
                    break;
                default:
                    break;
            }

               if (Shell.Execute())
            {
                IP = new IPInfo(Shell.Values["ip"].Value, Shell.Values["net"].Value, Shell.Values["gw"].Value);
            }
            else
            {
                IP = new IPInfo();
            }
            IP.Source = IPsource.Shell;
            IP.Shell = Shell;
            return IP;
        }