L
liguang
Unregistered / Unconfirmed
GUEST, unregistred user!
同题如何解析IP地址。
小弟几日移植了一个实现解析IP地址功能的BCB程序到DELPHI。但是移植后的代码在执行时却产生错误,不知道是为什么?
procedure TForm1.ToolButton9Click(Sender: TObject);
label
return;
var
wv:WORD;
ws:WSADATA;
err:integer;
hostnameHostEnt;
i:in_addr;
ptrChar;
ip:array[0..50] of char;
begin
wv:=MAKEWORD(2,0);
err:=WSAStartup(wv,ws);
if (err<>0) and ((LOBYTE(ws.wVersion)<>2) or (HIBYTE(ws.wVersion)<>0)) then
begin
MessageBox(Handle,'没有满足要求的WINSOCK.DLL','出错信息',MB_OK+MB_ICONERROR);
goto return;
end;
hostname:=gethostbyname(PChar(ComboBox1.Text));
if hostname=nil then
begin
MessageBox(Handle,'创建Socket出错!','出错信息',MB_OK+MB_ICONERROR);
goto return;
end;
LongInt(i):=0;
i.s_addr:=LongInt((hostname^.h_addr_list^)^);
ptr:=inet_ntoa(i);
if ptr=nil then
begin
MessageBox(Handle,'解析IP地址时出错!','出错信息',MB_OK+MB_ICONERROR);
goto return;
end;
StrCopy(ip,ptr);
ComboBox1.Text:=ip;
return:
WSACLeanup;
end;
得分条件:
1。修改上面代码中的错误。
2。给出自己的代码。
总之只要能实现这功能便给分(先到先给哟!)。
小弟几日移植了一个实现解析IP地址功能的BCB程序到DELPHI。但是移植后的代码在执行时却产生错误,不知道是为什么?
procedure TForm1.ToolButton9Click(Sender: TObject);
label
return;
var
wv:WORD;
ws:WSADATA;
err:integer;
hostnameHostEnt;
i:in_addr;
ptrChar;
ip:array[0..50] of char;
begin
wv:=MAKEWORD(2,0);
err:=WSAStartup(wv,ws);
if (err<>0) and ((LOBYTE(ws.wVersion)<>2) or (HIBYTE(ws.wVersion)<>0)) then
begin
MessageBox(Handle,'没有满足要求的WINSOCK.DLL','出错信息',MB_OK+MB_ICONERROR);
goto return;
end;
hostname:=gethostbyname(PChar(ComboBox1.Text));
if hostname=nil then
begin
MessageBox(Handle,'创建Socket出错!','出错信息',MB_OK+MB_ICONERROR);
goto return;
end;
LongInt(i):=0;
i.s_addr:=LongInt((hostname^.h_addr_list^)^);
ptr:=inet_ntoa(i);
if ptr=nil then
begin
MessageBox(Handle,'解析IP地址时出错!','出错信息',MB_OK+MB_ICONERROR);
goto return;
end;
StrCopy(ip,ptr);
ComboBox1.Text:=ip;
return:
WSACLeanup;
end;
得分条件:
1。修改上面代码中的错误。
2。给出自己的代码。
总之只要能实现这功能便给分(先到先给哟!)。