lochness Napisano Październik 16, 2008 Zgłoś Share Napisano Październik 16, 2008 Witam. Jak można sprawdzić publiczne adres ip albo może jak pobrać taki zewnętrzny adres ip? nie mam na myśli rozwiązań typu HTTP.Get('http://www.whatismyip.org/'); tylko coś niezawodnego Link do komentarza Udostępnij na innych stronach More sharing options...
Gość Gelldur Napisano Październik 16, 2008 Zgłoś Share Napisano Październik 16, 2008 Dziwne zadałeś pytanie jak pobrać publiczne IP Ale postaram Ci odpowiedzieć publiczne IP jest automatycznie przydzielane tobie przez twojego usługodawce (np. TP) żeby mieć stałe IP (czyli zawsze np. 83.222.222.222) to musisz skonsultować się z operatorem (pewnie za to zapłacisz) i wtedy masz stałe IP a tak to zawsze masz zmienne czyli co na nowo się połączysz z siecią masz inne IP Są metody aby łączyć się inaczej tak jakby na stałe z tobą poprzez DNS do tego służą programy np zobacz na tej www.no-ip.pl lub na tej www.no-ip.com stronie -------------------------------------------- Dodano przez Integer: Powyżej było jak programowo w Delphi sprawdzić zewnętrzny adres IP, a teraz łyk informacji. Jaki mam adres IP? Należy rozróżnić adres wewnętrzny/ lokalny od zewnętrznego/ publicznego. Jak ręcznie sprawdzić wewnętrzny/ lokalny Adres IP? Dla użytkowników np. Windows XP będzie to zwykle : Panel Sterowania \ Połączenia sieciowe i zapewne będzie tam co najmniej jedno połączenie lokalne, - zaznaczamy dowolne lokalne, - po lewej w zadaniach sieciowych wybieramy wyświetl stan tego połączenia - z zakładek wybieramy zakładkę "Obsługa" i tu mamy wypisane dane o naszym Adresie IP wewnętrznym, maska podsieci i brama domyślna. Ten sam efekt można osiągnąć w systemie Windows XP/2000 poprzez cmd. Należy w pierwszej kolejności uruchomić wiersz poleceń z menu Start / Uruchom, wpisując cmd. Następnie w wierszu poleceń należy wpisać komendę ipconfig. Inna sprawa ze w większości przypadków, gdzie wymagany jest lokalny adres IP np w przypadku bazy danych MySQL czy programowym wykrywaniu wystarczy w Delphi wpisać LocalHost Jeżeli Twój adres IP znajduje się w jednym z przedziałów: * 10.0.0.0 – 10.255.255.255 (maska: 255.0.0.0) * 172.16.0.0 – 172.31.255.255 (maska: 255.240.0.0) * 192.168.0.0 – 192.168.255.255 (maska: 255.255.255.0) to znaczy, że Twój adres IP jest adresem prywatnym, który nie jest widziany na zewnątrz. W sieci Internet jesteś natomiast widziany pod zupełnie innym adresem, zwanym adresem publicznym. Jak ręcznie sprawdzić zewnętrzny/ publiczny Adres IP? Jak pobrać zewnętrzny adres IP? Grając w grę internetową lub używając bazy danych na zewnętrznym serwerze używamy IP publicznego, który służy do połączenia z kilkoma komputerami poprzez sieć Internet. Zewnętrzny adres danego komputera można ręcznie sprawdzić jaki jest korzystając z tego samego linka który był użyty w powyższym kodzie Delphi. http://dynupdate.no-ip.com/ip.php lub na stronie z większą gamą narzędzi http://ip.lanpolis.pl/ - można tu też sprawdzić nazwę Twojego hosta i kilka innych przydatnych informacji. Inne strony do łatwego pobierania publicznego adresu IP: http://checkip.dyndns.org:8245/ Link do komentarza Udostępnij na innych stronach More sharing options...
Cubixmeister Napisano Październik 16, 2008 Zgłoś Share Napisano Październik 16, 2008 Pytający: Innego sposobu, niż usługa gdzieś na jakiejś maszynie, nie ma - możesz ewentualnie bawić sie w wyciąganie z routera po UPnP, ale ktoś może być za kilkoma przełącznikami, albo urządzenie nie udostępniać tego etc. Dlatego proponuję wykorzystać właśnie HTTP + gdzieś jakiś skrypcik. Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Październik 17, 2008 Zgłoś Share Napisano Październik 17, 2008 Możesz użyć kodu poniżej, pisane pod Delphi 4, ale pod nowszymi też się powinno skompilować bez problemów. Program wkleja IP do schowka. Korzysta raczej z pewnego i stabilnego serwisu. program copy_ip; {$APPTYPE CONSOLE} uses WinInet, ClipBrd; {$R *.RES} type TCharSet = set of Char; function StripNonConforming(const S: string; const ValidChars: TCharSet): string; var DestI : Integer; SourceI : Integer; begin SetLength(Result, Length(S)); DestI := 0; for SourceI := 1 to Length(S) do if S[SourceI] in ValidChars then begin Inc(DestI); Result[DestI] := S[SourceI] end; SetLength(Result, DestI) end; function GetIPFromWeb(const URL : string): string; var hSession, hURL : HInternet; Buffer : array[1..15] of Char; BufferLen : integer; AppName: string; begin Result := ''; AppName := 'olesio'; hSession := InternetOpen(PChar(AppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); until BufferLen = 0; Result := Buffer; finally InternetCloseHandle(hURL); InternetCloseHandle(hSession); end; end; function CheckUrl(Url : string) : boolean; var hSession, hfile : hInternet; dwindex, dwcodelen : integer; dwcode : array[1..20] of Char; Res : PChar; begin if Pos('http://', url) = 0 then Url := 'http://' + Url; Result := false; hSession := InternetOpen('InetURL:/1.0',INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0); if Assigned(hsession) then begin hfile := InternetOpenUrl( hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0); dwIndex := 0; dwCodeLen := 10; HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex); Res := PChar(@dwcode); Result := (Res = '200') or (Res = '302'); if Assigned(hfile) then InternetCloseHandle(hfile); InternetCloseHandle(hsession); end; end; var ShowIPUrl, // adres serwisu z pod którego pobierane jest IP zewnętrzne Your_IP : string; // zmienna, do której zapisywane jest IP begin ShowIPUrl := 'http://dynupdate.no-ip.com/ip.php'; if CheckUrl(ShowIPUrl) = True then begin Your_IP := StripNonConforming(GetIPFromWeb(ShowIPUrl), ['0'..'9', '.']); ClipBoard.AsText := Your_IP; end else begin ClipBoard.AsText := 'Can not check IP at site: ' + ShowIPUrl; end; end. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.