c#中把ip地址转换成dns名称

比如我输入百度的ip119.75.213.51,他就显示
www.baidu.com
,我用了gethostentry这些方法都不管用
一楼的回答很强悍,我是要编程啊
最新回答
山水闲人

2024-11-23 09:28:52

public string GetIp(string AreaName)
{
IPHostEntry hostEntry = Dns.GetHostEntry(AreaName);
IPEndPoint ipEndPoint = new IPEndPoint(hostEntry.AddressList[0], 0);
string ipAddress = ipEndPoint.Address.ToString();
return ipAddress;
}
这个是根据域名获取ip的代码,我以前写过的绝对管用。当然你的电脑得联网
反过来你自己想想办法看

我自己试了下
IPHostEntry hostEntry = Dns.GetHostEntry(sIP);
return hostEntry.HostName;
这个语句
www.google.com
取得的ip是66.249.89.104
然后根据ip获取的域名是
http://nrt04s01-in-f104.1e100.net/

这个域名打开也是google。。
我想不同的域名服务器或许不一样吧。
楼主要是做出来了,发个消息下。
Cunese-红玫瑰*

2024-11-23 09:43:51

用ping -a,然后获取命令行输出
或者去whois的网站查

--------------------------
为了证明一下我说的方法可行,代码如下
private void button1_Click(object sender, EventArgs e)
{
ProcessStartInfo start = new ProcessStartInfo("Ping.exe");//设置运行的命令行文件问ping.exe文件,这个文件系统会自己找到
//如果是其它exe文件,则有可能需要指定详细路径,如运行winRar.exe
start.Arguments = " -a "+textBox1.Text+" -n 1";//设置命令参数
start.CreateNoWindow = true;//不显示dos命令行窗口
start.RedirectStandardOutput = true;//
start.RedirectStandardInput = true;//
start.UseShellExecute = false;//是否指定操作系统外壳进程启动程序
Process p = Process.Start(start);
StreamReader reader = p.StandardOutput;//截取输出流
string line = reader.ReadLine();//每次读取一行
listBox1.Items.Clear();
while (!reader.EndOfStream)
{

listBox1.Items.Add(line);
line = reader.ReadLine();
}
p.WaitForExit();//等待程序执行完退出进程
p.Close();//关闭进程
reader.Close();//关闭流
}

-------------------------------------
最后的listbox已经能得到通过ping -a返回的域名地址,你可以用正则从里面过滤出域名
这里的解析出来的域名会有点不同,比如我测试的时候ping g.cn,得到203.208.39.99的IP地址,但是ping -a 203.208.39.99得到的域名是bi-in-f99.1e100.net,算是google的子域名了
大叔的仙女棒

2024-11-23 08:31:22

有这功能吗???
这好像需要你自己写吧,比如输入baidu,翻译成中文百度
你就只能把baidu和百度在某个地方关联起来
域名这个东西,编译器应该是总结不了的吧