小弟现正开发一个小型程序,需要获取机器的外网地址,各位大虾有知道的,帮帮忙哈,不胜感激。最好有delphi的代码。
解决方案 »
- RichEdit1.SelAttributes.Protected := true; 怎么发消息给RICHEDIT1,将Protected设为False???? 就是取消某字符串的保护属性,可以继续编辑此字符串!
- 为何 DCOM 服务端程序会无缘无故的退出(不留丝毫痕迹)???
- 为什么不对:test:=((1,2,3,4,5),(6,7,8,9,10),(11,12,13,14,15) ) ???
- 急需AHM控件包。望好心同志帮忙发一份过来。万分感谢了。
- 我的程序写好了,没有空间上传,谁提供空间?
- 请熟悉WebSnap的高手指教!
- 如何控制窗口的大小,如最大化时也不能满屏?
- 通过Rav可以打印,可通过delphi运行时ExecuteReport却报错,请高手指点
- 谁有installshield7.0的中文语言包的下载地址,军用
- 关于邮件列表的问题!
- Express Printing system v3.3.3 汉化版的问题‘invalid pointer operation’
- 窗体继承的问题?
var
buff:PHostEnt;
begin
Result:='';
try
buff := GetHostByName(pchar(Str));
Result:=Format('%d.%d.%d.%d',
[ord(buff.h_addr^[0]),
ord(buff.h_addr^[1]),
ord(buff.h_addr^[2]),
ord(buff.h_addr^[3])]);
except end;
end;
unit UnitIP;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, XPMan, StdCtrls, Buttons, ExtCtrls,WinInet; {=======================================================
DESIGN BY : 花好月圆 / 玉面书生
DATE: 2005-01-27
SITE: http://www.eastrise.cn/quick2004
BLOG: http://blog.csdn.net/jackie168
EMAIL: [email protected] 文章为作者原创,转载前请先与本人联系,转载请注明文章出处、保留作者信息,谢谢支持!
=======================================================}type
TForm1 = class(TForm)
Panel1: TPanel;
BitBtn1: TBitBtn;
XPManifest1: TXPManifest;
IdHTTP1: TIdHTTP;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function ExtractStr(Str: string): string; //格式字符串
var i,j:integer;
begin
Result:='';
j:=Length(str);
for i:=0 to j do
begin
if str[i] in ['0'..'9','.'] then
Result:=Result+str[i];
end;
end;function IsInternet: Boolean; //检查是否连上网络
begin
if InternetCheckConnection('http://www.eastrise.cn/ip.asp', 1, 0) then
Result := True
else
Result := False;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if IsInternet then
begin
Panel1.Caption:='你的公网IP:'+
ExtractStr(IdHTTP1.Get('http://www.eastrise.cn/ip.asp')); //取IP地址
end
else
application.MessageBox('该机器未连接网络或服务器出错!','错误',mb_ok+mb_iconerror);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
panel1.Caption:=''; //初始化
end;end.
提交日期:2003-8-28
关键词:INTERNETIP地址
procedure TForm1.Button1Click(Sender: TObject);
var
IPSTR, IP, HP: string;
BeginIP, EndIP, i: integer;
begin
Button1.Enabled := False;
HP :='http://www.nssoft.net';
NMHTTP1.Get(HP);
IPSTR := NMHTTP1.Body;
BeginIP := Pos('BEGINIP', IPSTR) + Length('BEGINIP');
EndIP := Pos('ENDIP', IPSTR);
IP := '';
for i := BeginIP to ENDip - 1 do
begin
IP := IP + IPstr[i];
end;
label1.Caption := IP;
Button1.Enabled := True;
end;
procedure TF_Main.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
begin
showmessage(Socket.RemoteAddress);
end;
很简单的吧