怎样获得本地IP地址或者HOST,以便通过服务器,建立电脑的点对点连接?

来源:互联网  时间:2016/9/5 22:26:37

关于网友提出的“ 怎样获得本地IP地址或者HOST,以便通过服务器,建立电脑的点对点连接?”问题疑问,本网通过在网上对“ 怎样获得本地IP地址或者HOST,以便通过服务器,建立电脑的点对点连接?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 怎样获得本地IP地址或者HOST,以便通过服务器,建立电脑的点对点连接?
描述:

整个广域网内肯定有IP地址完全相同的终端,是不是只能通过设置HOST连接?怎么设?


解决方案1:

用次函数就可以完成计算机名到IP地址的转换
function nametoip(name:string):string;
var
couputername:string;
hostent:phostent;
begin
couputername:=edit1.Text;
hostent:=gethostbyname(pchar(couputername));
if hostent<>nil then
 begin
  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])]);
 end;
end;

解决方案2:

function 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:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;

解决方案3:

function TFrmChat.HostName: String;
var
  Buf: Array[0..255] of char;
  GInitData: TWSADATA;
  wVerReq: Word;
begin
  wVerReq := MakeWord(2, 0);
  WSAStartup(wVerReq, GInitData);
  Result := '';
  GetHostName(Buf, Sizeof(Buf));
  Result := StrPas(Buf);
  WSACleanup;
end;

上一篇100分求delphi6 带的visibroker详细资料,我只找到for c++/java 的program guide
下一篇高分请教几个简单的DLL的名字(绝对菜),快来呀,先说对的就全得呀,不够分可以再加!!!在线等待中!!!
明星图片
相关文章
《 怎样获得本地IP地址或者HOST,以便通过服务器,建立电脑的点对点连接?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)