//每次都去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 地址的方法分析 在互联网应用开发中,经常会遇到需要根据域名获取其对应的 IP 地址的情况。这在网络安全、服务器管理以及网络爬虫等领域有着广泛的应用。Python 作为一种强大的...
标题中的“通过域名获取IP地址的小工具”是指一个软件或脚本程序,它能帮助用户自动将输入的域名转换为对应的IP地址,并将结果保存在Excel表格中。这个功能在进行网络故障排查、网站分析或者批量处理网络数据时非常...
通过UDP连接访问DNS服务器,获取域名ip地址,此代码由codeblocks编译。 DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain...
标题"由IP地址获取其域名"所指的知识点是DNS(Domain Name System)服务,它允许我们将人类可读的域名转换为计算机可识别的IP地址。在这个程序中,我们实现了这个过程的反向操作,即从IP地址反向解析到域名,这通常...
3. **gethostbyname函数**: 这是Windows API中的一个函数,用于根据域名获取主机信息,包括IP地址。在MFC中,我们可以通过调用`gethostbyname`来实现域名到IP地址的转换。 4. **Gethostbyname的使用**: 调用`...
首先,我们需要理解两种类型的IP地址:IPv4和IPv6。IPv4是最广泛使用的,由四个0到255之间的数字组成,用点分十进制表示,如192.168.0.1。IPv6是其升级版,提供更大的地址空间,由八组四字符的16进制数字构成,如...
下面我们将详细解析一个用VB编写的从域名获取IP地址的程序。 #### 核心知识点: 1. **常量定义**:程序首先定义了一系列常量,用于初始化Windows Socket库。这些常量包括`WS_VERSION_REQD`、`WS_VERSION_MAJOR`、`...
标题中的“批量ping域名获取ip地址绿色小软件”是指一种工具,它允许用户同时对多个域名执行ping操作,以快速获得这些域名对应的IP地址。在IT领域,ping命令是网络诊断的基本工具,用于检查网络连接的可达性和响应...
在Windows系统中,获取IP地址和主机名的方法如下: 1. **命令行方式**: - 打开命令提示符(cmd),输入`ipconfig`命令,可以查看所有网络接口的IP配置信息,包括内网IP。 - 若要查看公网IP,可以使用命令`...
IP地址(Internet Protocol Address)是互联网上的设备独一无二的标识,分为IPv4和IPv6两种类型。IPv4地址由32位二进制数组成,通常以4个十进制数表示,如192.168.1.1;IPv6地址则为128位,通常用8组4字符的十六进制...
通过这两个批处理文件,用户可以方便地在自动获取IP和手动设置IP之间快速切换,无需每次手动输入命令。这对于经常在动态和静态IP配置之间切换的用户来说,是一个非常实用的解决方案。不过,值得注意的是,手动设置的...
而要获取远程IP地址,可以使用`InetAddress.getByName(String host)`方法,传入目标主机的域名或IP地址即可。 接下来,我们转向MAC地址的获取。MAC地址通常用于设备间的直接通信,例如局域网内的通信。在Java中,...
除了以上两种方式外,还可以通过环境变量来获取相关信息。 1. **System.Environment.MachineName**:返回当前运行程序的计算机名称,相当于服务器的名称。 ```csharp string machineName = System.Environment....
本主题聚焦于如何利用C#通过IP地址或计算机名获取相关网络信息,包括IP地址、MAC地址以及进行DNS查询。以下是关于这些知识点的详细说明: 1. **IP地址**: - IP(Internet Protocol)地址是网络上设备的唯一标识,...
IP地址通常分为IPv4和IPv6两种类型,前者由四个用点分隔的十进制数字组成,如192.168.1.1,后者则采用了更长的128位地址格式。 要编写一个获取IP地址的程序,我们可以使用不同的编程语言,这里以Python为例,因为其...
总的来说,通过学习和应用这些技术,PowerBuilder开发者能够为他们的应用程序增添获取本地IP地址和主机名的功能,从而增强其网络功能。这种能力对于构建分布式系统、网络服务或任何需要远程通信的应用来说至关重要。
DNS(域名系统)是将域名解析为IP地址的系统,这对于网络通信至关重要。获取DNS服务器信息可以通过`gethostbyname()`等函数,或者使用特定的DNS查询API,如Windows的`DnsQuery()`。 在使用提供的源码时,需要注意...
总之,当遇到Wi-Fi无法获取IP地址的问题时,可以通过检查路由器、重启路由器、修改网络设置和密码、删除并重新连接网络以及设置静态IP等步骤来逐个排除故障。在操作过程中,确保遵循网络安全最佳实践,比如使用强...
标题中的“快速批量查询域名对应IP”是指一种能够高效处理大量域名并获取它们各自对应IP地址的工具或技术。在互联网中,域名是人类可读的网站标识,而IP地址则是计算机网络中设备的唯一数字标识。通过DNS(Domain ...
在Windows操作系统中,网络连接的IP地址配置有两种主要方式:静态IP(固定IP)和动态IP(自动获取IP)。这两个概念是网络连接的基础,对于理解网络通信和网络管理至关重要。 **静态IP(固定IP)**是指手动为计算机...