您的位置:1010cc时时彩经典版 > 操作系统 > 1010cc时时彩经典版:编造网卡进行鉴定区别,获

1010cc时时彩经典版:编造网卡进行鉴定区别,获

发布时间:2019-09-23 17:33编辑:操作系统浏览(69)

    简介

    在Socket编程的时候,我们供给实时获取大家所要求的IP地址。比如在编排后门的时候,大家可能须要获得平价的外网IP或内网IP;有的时候候大家可能须要看清大家获得的是不是是设想机网卡,这时候就要求对每一张网卡上的特点实行鉴定区别。以下小编计算了部分常用的管理办法供大家参考。


    参考资料:1. 领取网卡音讯方法
                  2. 编造与物理网卡区分方法

    直接以来,好像一向不一段正式的代码能提供Android设备此时的IP地址,究其原因,Android设备的网卡只怕不止叁个,如蜂窝网卡、WiFi网卡,何况同贰个网卡也或者装有持续贰个IP地址。基于此,贰个Android终端很有非常大希望同期全部三个IP地址(不只是同一时间具备IPv4和IPv6地址),举例敞开销路广分享蜂窝互联网的时候,蜂窝网卡具备二个IPv4地址来拜访外网,WiFi网卡具有二个IPv4地址来作为内网的网关。

    获得本机全部IP地址:

    string name = Dns.GetHostName();
    IPAddress[] ipadrlist = Dns.GetHostAddresses(name);
    

             这一个地址是包括全体网卡(设想网卡)的ipv4和ipv6地址。

    本文主要钻探的是运用Python获取本机全数网卡ip,掩码和播发地址,分享了相关的实例代码,具体介绍如下。

    1010cc时时彩经典版,收获IP地址,JS也能够获得顾客端IP地址啦,大家驾驭JS不可能跨域,所以那边借助了jquery,真的能够实现获取IP地址,代码如下,已由此测验:

    C 代码样例

    网络比较流行的获取Android设备IP地址的代码有以下两种,上边大家来千家万户解析一下。

    获得本机全体IPV4地址:

    string name = Dns.GetHostName();
    IPAddress[] ipadrlist = Dns.GetHostAddresses(name);
    foreach (IPAddress ipa in ipadrlist)
    {
                if (ipa.AddressFamily == AddressFamily.InterNetwork)
                Console.Writeline(ipa.ToString());
    }
    

            若要单单获取ipv4地址,能够用IPAdress.AddressFamily 属性剖断:对于 IPv4,重返 InterNetwork;对于 IPv6,再次回到 InterNetworkV6。

            不过只要本机或许有七个ipv4的地方,那怎么取得访谈暗许网关时使用的网卡IP呢。在CSDN论坛找到了大神的不二等秘书籍,用的是查询本机路由表。

    收获本机正在使用的ipv4地址(访谈互连网的IP),可别小看,如故有广大亟需思考的:
    1.一个管理器有多少个网卡,有线的、有线的、还应该有vmare设想的多少个网卡。
    2.即便只有二个网卡,不过该网卡配置了N个IP地址.在那之中还包括ipv6地址。

    1010cc时时彩经典版:编造网卡进行鉴定区别,获取本机IP地址。上面贴多少个小编直接使用的措施,它经过询问本机路由表,获取访问默许网关时使用的网卡IP。
    用了2年了,屡试不爽。

          /// <summary>
            /// 获取当前使用的IP
            /// </summary>
            /// <returns></returns>
            public static string GetLocalIP()
            {
                string result = RunApp("route", "print",true);
                Match m = Regex.Match(result, @"0.0.0.0s 0.0.0.0s (d .d .d .d )s (d .d .d .d )");
                if (m.Success)
                {
                    return m.Groups[2].Value;
                }
                else
                {
                    try
                    {
                        System.Net.Sockets.TcpClient c = new System.Net.Sockets.TcpClient();
                        c.Connect("www.baidu.com", 80);
                        string ip = ((System.Net.IPEndPoint)c.Client.LocalEndPoint).Address.ToString();
                        c.Close();
                        return ip;
                    }
                    catch (Exception)
                    {
                        return null;
                    }
                }
            }
    
            /// <summary>
            /// 获取本机主DNS
            /// </summary>
            /// <returns></returns>
            public static string GetPrimaryDNS()
            {
                string result = RunApp("nslookup", "",true);
                Match m = Regex.Match(result, @"d .d .d .d ");
                if (m.Success)
                {
                    return m.Value;
                }
                else
                {
                    return null;
                }
            }
    
            /// <summary>
            /// 运行一个控制台程序并返回其输出参数。
            /// </summary>
            /// <param name="filename">程序名</param>
            /// <param name="arguments">输入参数</param>
            /// <returns></returns>
            public static string RunApp(string filename, string arguments,bool recordLog)
            {
                try
                {
                    if (recordLog)
                    {
                        Trace.WriteLine(filename   " "   arguments);
                    }
                    Process proc = new Process();
                    proc.StartInfo.FileName = filename;
                    proc.StartInfo.CreateNoWindow = true;
                    proc.StartInfo.Arguments = arguments;
                    proc.StartInfo.RedirectStandardOutput = true;
                    proc.StartInfo.UseShellExecute = false;
                    proc.Start();
    
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(proc.StandardOutput.BaseStream, Encoding.Default))
                    {
                        //string txt = sr.ReadToEnd();
                        //sr.Close();
                        //if (recordLog)
                        //{
                        //    Trace.WriteLine(txt);
                        //}
                        //if (!proc.HasExited)
                        //{
                        //    proc.Kill();
                        //}
                        //上面标记的是原文,下面是我自己调试错误后自行修改的
                        Thread.Sleep(100);           //貌似调用系统的nslookup还未返回数据或者数据未编码完成,程序就已经跳过直接执行
                                                     //txt = sr.ReadToEnd()了,导致返回的数据为空,故睡眠令硬件反应
                        if (!proc.HasExited)         //在无参数调用nslookup后,可以继续输入命令继续操作,如果进程未停止就直接执行
                        {                            //txt = sr.ReadToEnd()程序就在等待输入,而且又无法输入,直接掐住无法继续运行
                            proc.Kill();
                        }
                        string txt = sr.ReadToEnd();
                        sr.Close();
                        if (recordLog)
                            Trace.WriteLine(txt);
                        return txt;
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex);
                    return ex.Message;
                }
            }
    

    大神代码源自帖子:1010cc时时彩经典版:编造网卡进行鉴定区别,获取本机IP地址。

           

    另有一种办法通过用ipconfig来获得:

    private void GetIP()  
        {  
            Process cmd = new Process();  
            cmd.StartInfo.FileName = "ipconfig.exe";//设置程序名   
            cmd.StartInfo.Arguments = "/all";  //参数   
     //重定向标准输出   
            cmd.StartInfo.RedirectStandardOutput = true;  
            cmd.StartInfo.RedirectStandardInput = true;  
            cmd.StartInfo.UseShellExecute = false;  
            cmd.StartInfo.CreateNoWindow = true;//不显示窗口(控制台程序是黑屏)   
     //cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//暂时不明白什么意思   
            /* 
     收集一下 有备无患 
            关于:ProcessWindowStyle.Hidden隐藏后如何再显示? 
            hwndWin32Host = Win32Native.FindWindow(null, win32Exinfo.windowsName); 
            Win32Native.ShowWindow(hwndWin32Host, 1);     //先FindWindow找到窗口后再ShowWindow 
            */  
            cmd.Start();  
            string info = cmd.StandardOutput.ReadToEnd();  
            cmd.WaitForExit();  
            cmd.Close();  
            textBox1.AppendText(info);  
        }
    

    1010cc时时彩经典版 1

    此时将在本身动手看如何截取了。可参照上边大神如何用正则表明式来合营。

    搜了一天,竟然没找到一段合适的代码来猎取机器中具有网卡的ip,掩码和播放地址,大部分都是用socket,但是socket日常重返的要不便是内网地址,要不正是公网地址,不可能找到全体地方,真的太优伤了,决定本身通过ifconfig或ipconfig的归来音信,一步步地过滤了。此次的代码主要利用了正则表达式和subprocess模块,况且为了合作全部平台(win,linux和mac),也选取了platform来推断系统项目,不说太多,代码如下:

    <script language="javascript" src="//www.jb51.net/jslib/jquery/jquery.js"></script> 
    <script language="javascript"> 
    jQuery(function($){ 
    var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' Math.random(); 
    $.getJSON(url, function(data){ 
    alert(data.Ip); 
    }); 
    }); 
    </script>
    

    本文由1010cc时时彩经典版发布于操作系统,转载请注明出处:1010cc时时彩经典版:编造网卡进行鉴定区别,获

    关键词: