delphi 怎么写获取外网ip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 怎么写获取外网ip相关的知识,希望对你有一定的参考价值。

用Delphi语言怎么写个可以通过ip138.com网站,获取外网ip让后保存在d盘里知道的告诉我下,谢谢了
delphi7 也可以吗

参考技术A 最简单的用 IDHTTP 控件:
var
s: string;//s 就是你需要的 XML 字符串,解析它则可得到你需要的 IP 地址
begin
s := IdHTTP1.Get('http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx/getGeoIPContext');
end;
参考技术B 需要delphi5或者6
FastNet组件板上的NMhttp控件

http://hi.baidu.com/killerprince/blog/item/f4afe80f655d12ec37d1222a.html
参考技术C 首先我838本回答被提问者采纳

请问 C# 如何获取外网IP?

做一个C/S程序,客户端和服务器之间可以通过外网相互连接进行通信
遇到的问题是客户端如何获取本机的外网IP
还有客户端如果用路由器、交换机上网
服务器连接客户端时,怎么访问客户端,只知道外网IP应该不能访问吧?
是不是外网IP和内网IP都要知道啊
具体用什么实现,谁知道帮忙解决一下!
帮忙解决了可以加分啊!

本机是获取不到自己外网IP的,真的想要知道,你可以访问ip138这种网站,让这种网站获得你的IP再返回给你。有点儿像自己的眼睛是看不到自己长啥样,想要看得是镜子“获得”你的样子,然后再返还给你一样。

路由什么的是基于NAT的,根本不需要知道客户端的真实地址是什么,服务端地址固定住就好了。当客户端与服务端连接时(建立Sockets)经过路由,路由会NAT给客户端一个地址(包含IP和端口号两部分),服务端只需要往这个地址上发送信息,路由器识别你这个地址会自动转发给相应的真正的客户端的,这也就是路由的本身作用。
参考技术A C# 获取外网IP方法:
private static string GetIP()

string tempip = "";
try

WebRequest wr = WebRequest.Create("http://www.ip138.com/ips138.asp");
Stream s = wr.GetResponse().GetResponseStream();
StreamReader sr = new StreamReader(s, Encoding.Default);
string all = sr.ReadToEnd(); //读取网站的数据
int start = all.IndexOf("您的IP地址是:[") + 9;
int end = all.IndexOf("]", start);
tempip = all.Substring(start, end - start);
sr.Close();
s.Close();

catch


return tempip;
参考技术B 外网IP获取不了的。外网IP的获取,是通过访问外网的网站,由网站获取你的IP,然后返回给你,你自己获取不到的,只能获取本地的IP。

以上是关于delphi 怎么写获取外网ip的主要内容,如果未能解决你的问题,请参考以下文章

怎么实现c#获取ip内网,外网地址?

vc获取本机外网IP,怎么获取,求源码。

获取本机外网IP 更新到D盘的文件 追500高分

C# 获取本机外网IP

请问 C# 如何获取外网IP?

java中如何获取到本机的外网ip地址?