[delphi/c++] zewnetrzne ip

0

wie ktoś może jak wykryć w delphi lub c++ builderze zewnetrzne IP internetowe?

0

Warto mieć na interncie jakiś skrypt PHP, który pokazuje jaki IP widzi dla twojego połączenia serwer uruchamiający skrypt. Jeśli ten IP jest taki sam jak wykryty w komputerze przez program, to z dużym prawdopodobnieństwem graniczącym z pewnością komputer ma glogalny IP.

Program musiałby jedynie pobierać wynik działania skryptu, pobierać IP komputera na którym pracuje i je porównać.

0

o tym akurat wiem, ale czy nie ma jakiegoś innego sposobu?

0

jeden ze sposobów odpytać WhatIsMyIP.com
Na formie musisz mieć TIdHTTP zwący się IdHTTP i ustawiony tak:

  object IdHTTP: TIdHTTP
    AuthRetries = 0
    AuthProxyRetries = 0
    AllowCookies = True
    ProxyParams.BasicAuthentication = False
    ProxyParams.ProxyPort = 0
    Request.ContentLength = -1
    Request.ContentRangeEnd = 0
    Request.ContentRangeStart = 0
    Request.ContentRangeInstanceLength = 0
    Request.Accept = 'text/html, */*'
    Request.BasicAuthentication = False
    Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
    HTTPOptions = [hoForceEncodeParams]
    Left = 280
    Top = 8
  end
function TdmMain.GetIp: string;
var
  sl: TStringList;
  i:  integer;
  IP: string;
begin
  sl := TStringList.Create;
  try
    sl.Text := IdHTTP.Get('http://www.whatismyip.com/');
    i := 0;
    while (i < sl.Count - 1) and (Pos('Your IP', sl[i]) = 0) do
      Inc(i);
    if Pos('Your IP', sl[i]) <> 0 then
    begin
      IP := sl[i];
      for i := 1 to Length(IP) do
        if IP[i] in ['1'..'9', '.'] then
          Result := Result + IP[i];
    end
    else
      Result := 'unknow IP';
  finally
    FreeAndNil(sl);
  end;
end;

Działa na 100% jeśli jest podłączenie do neta

1 użytkowników online, w tym zalogowanych: 0, gości: 1