如何自己编程得到本机的公网IP(在线等...) 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就用普通的得到静态IP的方法应该可以.取出来的其实是个IP地址列表.其中就包含了公网的IP(如果有的话) uses IdStack;procedure getcomputerip(outdata:Tstrings);var AIdStack:TIdStack;begin AIdStack:=TIdStack.CreateStack; try outdata.Text:=AIdStack.LocalAddresses.Text;//获取本地IP地址列表 finally AIdStack.free; end;end; getit911(Windows转Linux中) 得不到公网IP 如果你是在局域网内,抱歉。。没有办法!!!!!!!除非连接一个internet上的服务器,由它返回你的ip uses winsock;function GetLocalIP:string;type TaPInAddr = array [0..10] of PInAddr; PaPInAddr = ^TaPInAddr;var phe : PHostEnt; pptr : PaPInAddr; Buffer : array [0..63] of char; I : Integer; GInitData : TWSADATA;begin WSAStartup($101, GInitData); Result := ''; GetHostName(Buffer, SizeOf(Buffer)); phe :=GetHostByName(buffer); if phe = nil then Exit; pptr := PaPInAddr(Phe^.h_addr_list); I := 0; while (pptr^[I] <> nil)and(pptr^[I] = A类地址) do begin result:=StrPas(inet_ntoa(pptr^[I]^)); Inc(I); end; WSACleanup;end; To: cdkogh(xp++) 可是还是得不到啊!!我是局域网,ADSL,路由 如果你是在局域网内,抱歉。。没有办法!!!!!!!除非连接一个internet上的服务器,由它返回你的ip 将IP列表中的保留地址192.168.x.x/172.16.x.x/10.x.x.x全排除了,剩下的即是... 用ADSL路由上网,本机没有公网IP,其IP只是由ADSL中的DHCP服务动态分配的局域网IP 这不不简单,你找一个ASP的空间,上面写一个ASP程序,再用INDY的http组件访问这个ASP程序不就有本机的外网IP了!这个ASP程序如下:<html><%sip=Request.ServerVariables("LOCAL_ADDR")cip=Request.ServerVariables("REMOTE_ADDR")%><body>IP=<%=cip%></body></html> to: xiaochensu(拒绝水的鱼) idHttp怎么用啊,没用过 将存在的DBGrid组件转换为DBGridEh组件 DBGird中的列输入在输入过程中与其它列参与计算 問一個菜鳥問題:窗體居中為何總是會偏下 多个表操作,要么一次性提交成功,要么失败的问题。 哪位帮我解决下面的问题,急,在线等。 DBEdit如何实现文字中间对齐 哪里有放大bmp图片的控件啊? 问题 delphi的mdi结构中主窗体如何调用当前活动子窗体的一个函数? dvd章节提取 看书看得头大,哪位给我讲讲OPENGL里怎么在一不规则多边形里填充一幅图象(BMP、WMF、JPG等) 插件问题,EXE,DLL
取出来的其实是个IP地址列表.
其中就包含了公网的IP(如果有的话)
var
AIdStack:TIdStack;
begin
AIdStack:=TIdStack.CreateStack;
try
outdata.Text:=AIdStack.LocalAddresses.Text;//获取本地IP地址列表
finally
AIdStack.free;
end;
end;
得不到公网IP
除非连接一个internet上的服务器,由它返回你的ip
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while (pptr^[I] <> nil)and(pptr^[I] = A类地址) do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
可是还是得不到啊!!
我是局域网,ADSL,路由
除非连接一个internet上的服务器,由它返回你的ip
这个ASP程序如下:
<html>
<%
sip=Request.ServerVariables("LOCAL_ADDR")
cip=Request.ServerVariables("REMOTE_ADDR")
%>
<body>
IP=<%=cip%>
</body>
</html>
idHttp怎么用啊,没用过