#include "winsock.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WSAData wsaData;
WSAStartup(MAKEWORD(2,0),&wsaData); //初始化WINSOCK调用 char HostName[64]; //存放本主机名
gethostname(HostName,sizeof(HostName)); //得到主机名
Edit1->Text=HostName; HOSTENT *lpHostEnt=gethostbyname(HostName); //利用主机名去取主机结构
for (int i=0; lpHostEnt->h_addr_list[i]!=NULL; i++)
{
IN_ADDR *p=(IN_ADDR *)(lpHostEnt->h_addr_list[i]);
String IP=inet_ntoa(*p); //数字地址转换成带.的IP串
Memo1->Lines->Add(IP);
}
WSACleanup(); //释放WINSOCK调用
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WSAData wsaData;
WSAStartup(MAKEWORD(2,0),&wsaData); //初始化WINSOCK调用 char HostName[64]; //存放本主机名
gethostname(HostName,sizeof(HostName)); //得到主机名
Edit1->Text=HostName; HOSTENT *lpHostEnt=gethostbyname(HostName); //利用主机名去取主机结构
for (int i=0; lpHostEnt->h_addr_list[i]!=NULL; i++)
{
IN_ADDR *p=(IN_ADDR *)(lpHostEnt->h_addr_list[i]);
String IP=inet_ntoa(*p); //数字地址转换成带.的IP串
Memo1->Lines->Add(IP);
}
WSACleanup(); //释放WINSOCK调用
}
解决方案 »
- 帮我看下这简单的下载代码
- cxgrid的难题,非高手勿进!!!
- SOS 请问 在数据库操作中,出现了如下提示的原因
- 怎么找不到installshield express?
- 简单SQL语句:求一个与某字段最大值同条记录的另一个字段值。
- 在ACCESS数据库中,代码如下,但出现错误!!敬请关注。。。。。。。
- www.playicq.com 怎么上不去了?
- 关于文件夹图标的问题2,再次请教一下!
- Delphi中如何用ADO打开带密码的EXCEL文件?
- delphi 数据保存
- 高分重奖:请问如何在自己的程序中实现象IE的“另存为WEB档案.mht”的功能?
- 怎样在Delphi中实现下标的输入?(万分火急!!!)
有的机子有多个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;
IP: String;
begin
Screen.Cursor := crHourGlass;
try
WSAStartup($101, GInitData);
IP:='0.0.0.0';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then
begin
ShowMessage(IP);
Exit;
end;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] <> nil do
begin
IP := inet_ntoa(pptr^[I]^);
Inc(I);
end;
WSACleanup;
ShowMessage(IP);
finally
Screen.Cursor := crDefault;
end;
end;