DELPHI有这么的函数吗?或者WIN API有这样的函数也成。一定给分。
解决方案 »
- cxcheckgroup的PropertiesEditValueToStates事件问题
- 请高手解决~~~怎么用程序把excel中的数据导入到access中。谢谢
- 如何用dbgrid显示文本中的数据?
- 急:如何用TFileStream和Tmemorystream读写流
- toolbar上的toolbutton显示和按下问题?急!!!!!!!!!
- 用pop3收邮件时为何显示的是乱码?使用Indy控件后,除正文部分,其他还是乱码?
- 谁有树形控件的例子?我要看看。
- 怎么样在桌面数据库:paradox7里边把一个表的一列复制到另一个表?(在线等)
- 不好意思,还有问题PING相关
- 谁用过《财智家庭理财软件》这里面很多东东不知如何实现?是用delphi做的!
- 如何在程序中判断SaveDialog已经执行过了?
- 我是菜鸟,想问个问题,哪里有关于编译技术的和图形学,DELPHI的原代码, 哪些论坛会有?
NetGetDCName( NULL, /* Local Machine */
lpszDomain, /* Domain Name */
(LPBYTE *)&lpszPrimaryDC ); /* returned PDC */获得ip
function GetIPFromName(Name: string): string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
WSAStartup(2, WSAData);
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]),
Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
WSACleanup;
end;
function Tfrmmain.LocalIP: 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 do
begin
Result := inet_ntoa(pptr^[I]^);
Inc(I);
end;
WSACleanup;
end;
//IP到机名的转换
function Tfrmmain.IPAddrToName(IPAddr: String): String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101,WSAData);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr,4,AF_INET);
if HostEnt<>nil then result:=StrPas(Hostent^.h_name)
else result:='';
end;
//使用方法
Edit1.Text:=LocalIP; //读取IP
Edit2.Text:=IPAddrToName(Edit1.Text); //读取计算机名