请高手指点送分题!在局域网内怎么得到主机的外部IP。
说一说DELPHI的代码。
给分:100.
答对马上给分!!

解决方案 »

  1.   

    将某一主机域名解析为IP地址。
    使用 WinSock 单元;
    过程如下:
    function HostToIP(Name: string; var Ip: string): Boolean;
    var
      wsdata : TWSAData;
      hostName : array [0..255] of char;
      hostEnt : PHostEnt;
      addr : PChar;
    begin
      WSAStartup ($0101, wsdata);
      try
        gethostname (hostName, sizeof (hostName));
        StrPCopy(hostName, Name);
        hostEnt := gethostbyname (hostName);
        if Assigned (hostEnt) then
          if Assigned (hostEnt^.h_addr_list) then begin
            addr := hostEnt^.h_addr_list^;
            if Assigned (addr) then begin
              IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
              byte (addr [1]), byte (addr [2]), byte (addr [3])]);
              Result := True;
            end
            else
              Result := False;
          end
          else
            Result := False
        else begin
          Result := False;
        end;
      finally
        WSACleanup;
      end
    end;
      

  2.   

    不是这样的。
    比如说:
    我是192.168.0.5
    主机的内部IP:192.168.0.1
    而我要得到的是他的外部IP。
    也就是在INTERNET上的IP。
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      NMHTTP1.Get('http://www.163.com');
      showmessage(NMHTTP1.RemoteIP);
    end;
    如果是ftp用nmftp
      

  4.   

    在程序中执行ipconfig, 再切分字符串判断怎样?