我想得到上网机器的Ip地址,上网方式不确定。

解决方案 »

  1.   

    用api函数GetHostByName:uses ...,winsock,...
    ...
    function GetLocalIp(var ALocalIp: String): Boolean; 
    var
      HostEnt: PHostEnt;
      Ip: string;
      addr: pchar;
      Buffer: array [0..63] of char;
      GInitData: TWSADATA;
    begin
      Result := False;
      try
        WSAStartup(2, GInitData);
        GetHostName(Buffer, SizeOf(Buffer));
        HostEnt := GetHostByName(buffer);
        if HostEnt = nil then Exit;
        addr := HostEnt^.h_addr_list^;
        ip := Format('%d.%d.%d.%d', [byte(addr [0]),
              byte (addr [1]), byte (addr [2]), byte (addr [3])]);
        ALocalIp := Ip;
        Result := True;
      finally
        WSACleanup;
      end;
    end;
      

  2.   

    对啊 ,我想是QQ那样,可以知道上网的IP地址啊
      

  3.   

    如果你是共享上网的话,你的IP是你的winrouter提供的
      

  4.   

    function GetLocalIp(var ALocalIp: String): Boolean; 
    var
      Host: PHostEnt;
      Ip: string;
      addr: pchar;
      Buffer: array [0..63] of char;
      GInitData: TWSADATA;
    begin
      Result := False;
      try
        WSAStartup(2, GInitData);
        Host:= GetHostByName(edit1.text);
        if Host= nil then Exit;
        addr := HostEnt^.h_addr_list^;
        ip := Format('%d.%d.%d.%d',ord(addr [0]),
              ord (addr [1]), ord (addr [2]), ord(addr [3])]);
        ALocalIp := Ip;
        Result := True;
      finally
        WSACleanup;
      end;
    end;
    edit1.text是你上网域名
      

  5.   

    “我想得到上网机器的Ip地址,上网方式不确定。” 
     ???你的意思是得到与你电脑联网的电脑的IP吗?
      

  6.   

    你用socket控件连接到internet上的别一机器,就可以反回本地ip了!
      

  7.   

    对啊用SOCKET控件连接 互联网上的机器