如何通过内网获得外网IP,公司上班这里有外网网口但是没开通只能上内网

解决方案 »

  1.   

    设置代理或者用路由器设置NAT。
      

  2.   

    ip:=IdHTTP1.Get('http://www.xxx.net/ip.asp');
    ip.asp代码如下<%
    Public Function getIP() 
      Dim strIPAddr 
      If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then 
      strIPAddr = Request.ServerVariables("REMOTE_ADDR") 
      ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then 
      strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) 
      ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then 
      strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) 
      Else 
      strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
      End If 
      getIP = Trim(Mid(strIPAddr, 1, 30)) 
     End Function 
    %>
      

  3.   

    response.Write getIP() 
    在加上这句
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    var s,str:string;
       int1,int2:integer;
    begin
           memo1.Clear;
           nmhttp1.Get(‘http://www.ip138.com/ips.asp’);  //这个才是真正获取IP的地方
           memo1.Text:=nmhttp1.Body;   //把页面内容先复制到memo组件上
           int1:=pos(‘您的IP地址是:[',memo1.Text);
           s:=memo1.Text;
           delete(s,1,int1);
           int2:=pos('] 来自’,s);
           str:=copy(s,length(‘您的IP地址是:[ ‘),int2-length(‘您的IP地址是:[ ‘));
           form1.Caption:=’您的IP地址是’ + str;  //标题即为IP
    end;end.