`

通过域名获取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 地址的情况。这在网络安全、服务器管理以及网络爬虫等领域有着广泛的应用。Python 作为一种强大的...

    通过域名获取IP地址的小工具

    标题中的“通过域名获取IP地址的小工具”是指一个软件或脚本程序,它能帮助用户自动将输入的域名转换为对应的IP地址,并将结果保存在Excel表格中。这个功能在进行网络故障排查、网站分析或者批量处理网络数据时非常...

    访问DNS服务器 获取域名ip地址

    通过UDP连接访问DNS服务器,获取域名ip地址,此代码由codeblocks编译。 DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain...

    由IP地址获取其域名

    标题"由IP地址获取其域名"所指的知识点是DNS(Domain Name System)服务,它允许我们将人类可读的域名转换为计算机可识别的IP地址。在这个程序中,我们实现了这个过程的反向操作,即从IP地址反向解析到域名,这通常...

    利用MFC实现域名到IP地址的自动转换

    3. **gethostbyname函数**: 这是Windows API中的一个函数,用于根据域名获取主机信息,包括IP地址。在MFC中,我们可以通过调用`gethostbyname`来实现域名到IP地址的转换。 4. **Gethostbyname的使用**: 调用`...

    获取网站IP地址

    首先,我们需要理解两种类型的IP地址:IPv4和IPv6。IPv4是最广泛使用的,由四个0到255之间的数字组成,用点分十进制表示,如192.168.0.1。IPv6是其升级版,提供更大的地址空间,由八组四字符的16进制数字构成,如...

    vb中从域名得到IP的软件源码

    下面我们将详细解析一个用VB编写的从域名获取IP地址的程序。 #### 核心知识点: 1. **常量定义**:程序首先定义了一系列常量,用于初始化Windows Socket库。这些常量包括`WS_VERSION_REQD`、`WS_VERSION_MAJOR`、`...

    批量ping域名获取ip地址绿色小软件

    标题中的“批量ping域名获取ip地址绿色小软件”是指一种工具,它允许用户同时对多个域名执行ping操作,以快速获得这些域名对应的IP地址。在IT领域,ping命令是网络诊断的基本工具,用于检查网络连接的可达性和响应...

    获取IP地址及主机名

    在Windows系统中,获取IP地址和主机名的方法如下: 1. **命令行方式**: - 打开命令提示符(cmd),输入`ipconfig`命令,可以查看所有网络接口的IP配置信息,包括内网IP。 - 若要查看公网IP,可以使用命令`...

    delphi获取IP 地址

    IP地址(Internet Protocol Address)是互联网上的设备独一无二的标识,分为IPv4和IPv6两种类型。IPv4地址由32位二进制数组成,通常以4个十进制数表示,如192.168.1.1;IPv6地址则为128位,通常用8组4字符的十六进制...

    自动获取IP地址和自动设置IP地址批处理

    通过这两个批处理文件,用户可以方便地在自动获取IP和手动设置IP之间快速切换,无需每次手动输入命令。这对于经常在动态和静态IP配置之间切换的用户来说,是一个非常实用的解决方案。不过,值得注意的是,手动设置的...

    get_mac_address_using_java.rar_获取IP地址_获取mac地址

    而要获取远程IP地址,可以使用`InetAddress.getByName(String host)`方法,传入目标主机的域名或IP地址即可。 接下来,我们转向MAC地址的获取。MAC地址通常用于设备间的直接通信,例如局域网内的通信。在Java中,...

    .net获取客户端主机名和ip地址

    除了以上两种方式外,还可以通过环境变量来获取相关信息。 1. **System.Environment.MachineName**:返回当前运行程序的计算机名称,相当于服务器的名称。 ```csharp string machineName = System.Environment....

    C# 通过IP或计算机名 获取信息

    本主题聚焦于如何利用C#通过IP地址或计算机名获取相关网络信息,包括IP地址、MAC地址以及进行DNS查询。以下是关于这些知识点的详细说明: 1. **IP地址**: - IP(Internet Protocol)地址是网络上设备的唯一标识,...

    一个简单的获取IP地址的程序

    IP地址通常分为IPv4和IPv6两种类型,前者由四个用点分隔的十进制数字组成,如192.168.1.1,后者则采用了更长的128位地址格式。 要编写一个获取IP地址的程序,我们可以使用不同的编程语言,这里以Python为例,因为其...

    powerbuilder获取本地IP地址或主机名

    总的来说,通过学习和应用这些技术,PowerBuilder开发者能够为他们的应用程序增添获取本地IP地址和主机名的功能,从而增强其网络功能。这种能力对于构建分布式系统、网络服务或任何需要远程通信的应用来说至关重要。

    pb中获得本机IP地址\MAC地址信息纯代码方式

    DNS(域名系统)是将域名解析为IP地址的系统,这对于网络通信至关重要。获取DNS服务器信息可以通过`gethostbyname()`等函数,或者使用特定的DNS查询API,如Windows的`DnsQuery()`。 在使用提供的源码时,需要注意...

    wifi无法获取ip地址的解决方法

    总之,当遇到Wi-Fi无法获取IP地址的问题时,可以通过检查路由器、重启路由器、修改网络设置和密码、删除并重新连接网络以及设置静态IP等步骤来逐个排除故障。在操作过程中,确保遵循网络安全最佳实践,比如使用强...

    快速批量查询域名对应IP

    标题中的“快速批量查询域名对应IP”是指一种能够高效处理大量域名并获取它们各自对应IP地址的工具或技术。在互联网中,域名是人类可读的网站标识,而IP地址则是计算机网络中设备的唯一数字标识。通过DNS(Domain ...

    Windows固定ip/自动获取ip切换脚本

    在Windows操作系统中,网络连接的IP地址配置有两种主要方式:静态IP(固定IP)和动态IP(自动获取IP)。这两个概念是网络连接的基础,对于理解网络通信和网络管理至关重要。 **静态IP(固定IP)**是指手动为计算机...

Global site tag (gtag.js) - Google Analytics