机器使用adsl vlan方式联网请问如何得到本机的ip

解决方案 »

  1.   

    ipconfig
    但,如果你通过代理服务器上网,你得到的也是一个局域网内IP地址,你对外是:(服务器地址):(端口号).
      

  2.   

    在DELPHI7.0中很简单,只要用到一个控件indymisc标签中的idipwatch
    procedure tform1.button1click(.....)
    begin
    showmessage('你的主机IP地址是'+idipwatch1.localip);
    end;
      

  3.   

    没错。但我j觉得得到自己的ip,较可行。通过moden上网的机器得到ip的方法很多。但是通过adsl上网的机器如何得到ip呢????
      

  4.   

    //试试返回本机 Ip :uses WinSock ;function GetIpAddressLIP: 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
      try
        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;
      except
        on Exception do
        begin
          Beep;
        end;
      end;
    end;
      

  5.   

    在本机上,可以使用IPConfig、WinIPCFG,或者 arp -a 查看IP地址。
    或者上到某些论坛那里会显示你的IP地址,如果你是通过代理服务器上网,当然就只能看到代理服务器的IP地址啦。
    http://www.lucn.net/bbs/ip.php
    这是水晶动网论坛的ip查询地址,很准确,速度也很快,但是别干“坏事”,人家知道你从哪来,去看看啦!
      

  6.   

    我试用了"计算机质子"的函数.不行.只能得到网内的ip.对于ipconfig&arp&winipcfg都是如此.那位有更高的高见,或思路???请不吝赐教!!!
      

  7.   

    Function GetComputerIP:String;
    Var HostName: ARRAY[1..255] OF Char;
        WSData: TWSAData;
        MyHost: PHostEnt;
    BEGIN
      Result:='0.0.0.0';
      WSAstartup(2,WSData);
      gethostname(@HostName[1],SizeOf(HostName));
      MyHost:=GetHostByName(@HostName[1]);
      IF MyHost<>NIL THEN
         Result:=Format('%d.%d.%d.%d',[Ord(MyHost.h_addr^[0]),Ord(MyHost.h_addr^[1]),Ord(MyHost.h_addr^[2]),Ord(MyHost.h_addr^[3])]);
      

  8.   

    // 从网页取得 procedure TForm1.Button1Click(Sender: TObject);
    var
       StrAddr,StrBody, StrIP,StrSearch : String;
       Ts : TStrings ;
       i : Integer ;
    begin
      Ts := TStringList.Create ;
      StrAddr := 'http://www.iligia.com/dtc/index.asp';
      StrSearch := '本机地址: ';
      NMHTTP1.Get(strAddr);
      StrBody := NMHTTP1.Body;
      Ts.Text := StrBody ;
      for i := 0 to Ts.Count - 1 do
      begin
        if Pos(StrSearch,Ts.Strings[i]) > 0 then
          Break ;
      end ;
      StrIP := Copy(Ts.Strings[i],Pos('mono',Ts.Strings[i]) + 6,16) ;
      if Pos('>',StrIP) > 0 then
        Delete(StrIp,Pos('>',StrIp),1) ;  // 删除无效字符,还有其他
      ShowMessage(StrIP) ;
    end ;
      

  9.   

    ^_^,这么多办法。我就知道前两种,网页的不知道了,不过用D7了
    另外你如果用代理服务器就用ioconfig,netshe  都可以得到
    但是你如果用ADSL,而且是用路由器连接的话那么以上方法不能得到!
    你用服务器连就可以得到
    所以一办是你安装一个可以看IP的QQ,把自己添加为自己的好友
    或者到论坛上去看也可以得到的拉