`

通过域名获取IP的两种方法

    博客分类:
  • C#
 
阅读更多
 //每次都去Dns服务器上获取外网IP防止Dns缓存
                string cmdResult = RunCmd("nslookup " + server);
                string[] cmdResults = cmdResult.Split(':');

                string tempIp;
                if (cmdResults.Length > 0)
                {
                    tempIp = cmdResults[cmdResults.Length - 1].Trim();
                }
                else
                {
                    return false;
                }

 

  //先清除DNS缓存
                RunCmd("ipconfig /flushdns");
                ips = Dns.GetHostAddresses(server);
                string ipCollection = string.Empty;
                foreach (IPAddress address in ips)
                {
                    ipCollection += address.ToString();
                    ipCollection += ";";

                }
                LogHelper.WriteOperationLog("解析出来的IP为:" + ipCollection);

                foreach (IPAddress address in ips)
                {
                    try
                    {
                        client = new TcpClient(address.ToString(), port);

                        if (client != null)
                        {
                            client.Close();
                            ip = address.ToString();
                            LogHelper.WriteOperationLog("同步IP为:" + address);
                            break;
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }

 

 

 

  /// <summary>
        /// 执行命令行命令
        /// </summary>
        /// <param name="command">命令</param>
        /// <returns>返回执行结果</returns>
        static string RunCmd(string command)
        {
            //实例一个Process类,启动一个独立进程   
            Process p = new Process();

            //Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,下面我们用到了他的几个属性:   

            p.StartInfo.FileName = "cmd.exe";           //设定程序名   
            p.StartInfo.Arguments = "/c " + command;    //设定程式执行参数   
            p.StartInfo.UseShellExecute = false;        //关闭Shell的使用   
            p.StartInfo.RedirectStandardInput = true;   //重定向标准输入   
            p.StartInfo.RedirectStandardOutput = true;  //重定向标准输出   
            p.StartInfo.RedirectStandardError = true;   //重定向错误输出   
            p.StartInfo.CreateNoWindow = true;          //设置不显示窗口   

            p.Start();   //启动   
            p.StandardInput.WriteLine("exit");        //不过要记得加上Exit要不然下一行程式执行的时候会当机  

            return p.StandardOutput.ReadToEnd();        //从输出流取得命令执行结果   
        }

 

分享到:
评论

相关推荐

    Python实现通过解析域名获取ip地址的方法分析

    主要介绍了Python实现通过解析域名获取ip地址的方法,结合实例形式总结分析了两种比较常见的解析域名对应IP地址相关操作技巧,需要的朋友可以参考下

    Web数据模型以及获取、存储方法研究_北京大学硕士论文

    这样导致网络资源和机器资源的浪费,并且对相应的Web服务器也造成额外负担,本文通过分析IP地址与域名的关系,总结出哪些主机名有同义关系,从而避免了网页的重复获取;另外,对于消除Web上存在的重复或相似的网页,...

    域名服务器.doc

    域名系统保存了一张域名(Domain Name)和与之相对应的IP地址(IP Address)的表,用以解析计算机和网络服务等的域名。 域名(Domain Name),是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识...

    C/C++ 获取自身IP与域名片段的示例代码

    比如0x01020304这样一个数值,如果用大尾方式存储,其存储方式为01 02 03 04而用小尾方式存储则是04 03 02 01,一般Windows操作系统兼容的CPU为小尾方式,而UNIX操作系统所兼容的CPU多为大尾方式,通过使用两种方法即可...

    gps和基站两种方式实现远程地图定位

    断断续续搞了两个多月,终于实现了android手机通过短信拦截进行远程定位,支持android4.4哦,...6、程序中的代码在步骤2中打开后需要把“你的IP或域名”改成你的IP或域名,如还有任何疑问请加我微信happymeaning,哈哈

    NB-IoT CoAP网关搭建教程

    通过DNS解析某个域名的IP地址,获取到IP地址后再进行通信。 如果NB-IoT模块只能绑定一个IP,则可以通过这个IP先获取其他IP列表,然后统一经过这个IP进行转发。 参考: 1.1.2 NB卡准备 模组使用的SIM卡为...

    计算机网络实验.doc

    检测本地域名服务器的IP地址 4. 检测DHCP服务器的MAC地址(考虑两种网络环境:实验室网络环境和宿舍网络环境) 5. 检测去往www.gzhu.edu.cn的路径MTU 6. 检测本机的路由表 7. 检测去往www.gzhu.edu.cnn网络的可用性、...

    乘风多用户PHP统计系统 v5.2.zip

    2.新增对cdn访问的支持,可正确获取浏览者IP地址 3.新增在非ie内核下可正确获取统计代码 4.新增对网页Title的在线统计记录 5.新增设置邮件发送服务器邮件使用加密端口发送的功能 6.重新整理了文件和目录结构更...

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    计算机网络(谢希仁第五版)课后答案

    但当根域名服务器没有被查询的主机的信息时,它一定知道某个保存有被查询的主机名字映射的授权域名服务器的IP地址。通常根域名服务器用来管辖顶级域。根域名服务器并不直接对顶级域下面所属的所有的域名进行转换,但...

    乘风多用户计数器 v4.4 (Acc).zip

    2.新增对cdn访问的支持,可正确获取浏览者IP地址 3.新增在非ie内核下可正确获取统计代码 4.新增对网页Title的在线统计记录 5.新增设置邮件发送服务器邮件使用加密端口发送的功能 6.重新整理了文件和目录结构更...

    DNSlog-GO:DNSLog-GO是一种golang编写的监控DNS解析记录的工具,自带WEB接口

    域名与公网IP准备搭建并使用 DNSLog,你需要拥有两个域名,一个域名作为 NS 服务器域名(例:a.com),一个用于记录域名(例: b.com)。还需要有一个公网 IP 地址(如:1.1.1.1)注意:b.com 的域名提供商需要支持自定义 NS...

    IIS6.0 IIS,互联网信息服务

    一个IP地址对应多个Web站点 当按上步的方法建立好所有的Web站点后,对于做虚拟主机,可以通过给各Web站点设不同的端口号来实现,比如给一个Web站点设为80,一个设为81,一个设为82……,则对于端口号是80的Web站点,...

    网络信息扫描实验

    扫描工具根据作用的环境不同,可分为两种类型:网络漏洞扫描工具和主机漏洞扫描工具。主机漏洞扫描工具是指在本机运行的扫描工具,以期检测本地系统存在的安全漏洞。网络漏洞扫描工具是指通过网络检测远程目标网络和...

    计算机网络期末复习资料包

    为方便将IP地址中的网络号和主机号分离,主机和网络中的路由器内部都设定一个长度与IP地址一致的码,用这个码和IP地址直接“与”运算就可求得IP地址中的网络号。将这个地址取反后和IP地址与运算就可求得主机地址。这...

    adou_utils:实用程序

    实用程序 费阿 :check_mark_button:检查域名HTTPS证书有效... :check_mark_button:读写文件,支持追加和覆盖两种模式 :check_mark_button:远程SSH指令 :check_mark_button:按行循环读取文件每一行 去做 支持定时任务

    填空——信息及信息技术.doc

    信 息 姓名 班级 学号 一、信息与信息技术 1.在当今社会里,( )与物质、能源被称为人类活动的三要素。 2.信息的理解:对人们有用的或有价值的消息,信息是指语言、文字、...知道具体的网站的 "IP地址"或"域名",就可以

    web路径探测工具 7kbscan-WebPathBrute 1.5.8 (集成三字典)

    六、http访问方法HEAD GET POST 三种方式,head请求扫描速度最快但是准确率不如以下两种,post请求是为某些情况绕过waf使用的。 七、延时扫描功能勾选效果是:单线程扫描、默认每隔2秒访问一次。适用于某些存在CCwaf...

    C++网络爬虫项目

    综合以上两种考虑,前台系统对网页进行排序,作为搜索的最终结果。 除了上述功能模块,搜索引擎的“反作弊”模块近年来越来越受到重视。搜索 引擎作为互联网用户上网的入口,对于网络流量的引导和分流至关重要,甚至...

Global site tag (gtag.js) - Google Analytics