![]() |
Whois from IP-Adresse?
Was ist die einfachste Methode, um Informationen über eine bestimmte IP-Adresse im Internet zu erhalten?
|
AW: Whois from IP-Adresse?
Was für Informationen benötigst/erwartest du denn? Außer dem Provider und evtl. einem ungefähren Standort, bekommt man meistens nicht viel raus (ausgehend davon, dass es sich um eine private IP handelt). Im Falle eines Servers, besteht ua. noch die Möglichkeit die Domains zu ermitteln, die auf diese Adresse verweisen und darüber ggfls. einen Inhaber.
|
AW: Whois from IP-Adresse?
Für Zacherl zweiteres wäre hier eine Anlaufstelle:
![]() |
AW: Whois from IP-Adresse?
Zitat:
|
AW: Whois from IP-Adresse?
Also so etwas wie
![]() |
AW: Whois from IP-Adresse?
Zitat:
Ich habe irgendwo diesen Code gefunden:
Delphi-Quellcode:
Aber ich kriege damit diese Fehlermeldung:
uses
IdWinsock2; function IPAddrToName(IPAddr: string): string; var SockAddrIn: TSockAddrIn; HostEnt: PHostEnt; WSAData: TWSAData; begin WSAStartup($101, WSAData); SockAddrIn.sin_addr.s_addr := inet_addr(PAnsiChar(IPAddr)); HostEnt := GetHostByAddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); if HostEnt <> nil then Result := StrPas(Hostent^.h_name) else Result := ''; end; procedure TForm3.btnGetHostNameClick(Sender: TObject); begin Self.Caption := IPAddrToName(edtIpAddress.Text); end; Zitat:
|
AW: Whois from IP-Adresse?
Ich hätte in C# Code von SO für genau das was Du möchtest, nehme ich mal an. Hier wird per Api auf
![]() Hier der Code
Code:
und so wird es aufgerufen:
public class IpProperties
{ public string Status { get; set; } public string Country { get; set; } public string CountryCode { get; set; } public string Region { get; set; } public string RegionName { get; set; } public string City { get; set; } public string Zip { get; set; } public string Lat { get; set; } public string Lon { get; set; } public string TimeZone { get; set; } public string ISP { get; set; } public string ORG { get; set; } public string AS { get; set; } public string Query { get; set; } } public string IPRequestHelper(string url) { HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); StreamReader responseStream = new StreamReader(objResponse.GetResponseStream()); string responseRead = responseStream.ReadToEnd(); responseStream.Close(); responseStream.Dispose(); return responseRead; } public IpProperties GetCountryByIP(string ipAddress) { string ipResponse = IPRequestHelper("http://ip-api.com/xml/" + ipAddress); using (TextReader sr = new StringReader(ipResponse)) { using (System.Data.DataSet dataBase = new System.Data.DataSet()) { IpProperties ipProperties = new IpProperties(); dataBase.ReadXml(sr); ipProperties.Status = dataBase.Tables[0].Rows[0][0].ToString(); ipProperties.Country = dataBase.Tables[0].Rows[0][1].ToString(); ipProperties.CountryCode = dataBase.Tables[0].Rows[0][2].ToString(); ipProperties.Region = dataBase.Tables[0].Rows[0][3].ToString(); ipProperties.RegionName = dataBase.Tables[0].Rows[0][4].ToString(); ipProperties.City = dataBase.Tables[0].Rows[0][5].ToString(); ipProperties.Zip = dataBase.Tables[0].Rows[0][6].ToString(); ipProperties.Lat = dataBase.Tables[0].Rows[0][7].ToString(); ipProperties.Lon = dataBase.Tables[0].Rows[0][8].ToString(); ipProperties.TimeZone = dataBase.Tables[0].Rows[0][9].ToString(); ipProperties.ISP = dataBase.Tables[0].Rows[0][10].ToString(); ipProperties.ORG = dataBase.Tables[0].Rows[0][11].ToString(); ipProperties.AS = dataBase.Tables[0].Rows[0][12].ToString(); ipProperties.Query = dataBase.Tables[0].Rows[0][13].ToString(); return ipProperties; } } }
Delphi-Quellcode:
var ipResponse = GetCountryByIP("your ip address or domain name");
edit Nachtrag: Besuche mal den Link von oben und klicke auf "API documentation" Dort klicke auf "Newline Separated". Ein simpler GET Aufruf und gut ist. Beispiele werden dort beschrieben. Limits < 150 Requests per Minute. Das musst Du beachten und für Kommerzielle Zwecke ohne Lizenz verboten. |
AW: Whois from IP-Adresse?
Zitat:
|
AW: Whois from IP-Adresse?
Kommt halt auf das an was man bezwecken möchte, mit dem GET Aufruf hast Du halt alle Informationen zum selber verarbeiten.
Wenn man das alles in eine StringList zum Beispiel pumpt, kann man, da #1-#14 fest vorgegeben ist, auch dementsprechend die StringList abrufen/interpretieren. Um es wie im Thread vorgegeben war in eine ListBox/ListView zu schreiben wäre das die einfachste Methode. Natürlich kann man auch das ganze in einer WebBrowser Komponente direkt abfragen lassen, die Ergebnisse würden auf diese Weise auch mehr solcher Dienste verfügbar machen, die halt keine Api anbieten, aber ob Du den Output dann als ListBox/ListView verwenden kannst mag ich erstmal als exotisch betrachten, soll nicht bedeuten das es nicht machbar wäre. |
AW: Whois from IP-Adresse?
Ich kriege mit diesem Code eine Menge "chinesische Zeichen":
Delphi-Quellcode:
uses
Winapi.WinInet; function GetUrlContent(const Url: string): string; var NetHandle: HINTERNET; UrlHandle: HINTERNET; Buffer: array[0..1024] of Char; BytesRead: dWord; begin Result := ''; NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if Assigned(NetHandle) then begin UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0); if Assigned(UrlHandle) then { UrlHandle valid? Proceed with download } begin FillChar(Buffer, SizeOf(Buffer), 0); repeat Result := Result + Buffer; FillChar(Buffer, SizeOf(Buffer), 0); InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead); until BytesRead = 0; InternetCloseHandle(UrlHandle); end else { UrlHandle is not valid. Raise an exception. } raise Exception.CreateFmt('Cannot open URL %s', [Url]); InternetCloseHandle(NetHandle); end else { NetHandle is not valid. Raise an exception } raise Exception.Create('Unable to initialize Wininet'); end; procedure TForm3.btnGetHostNameClick(Sender: TObject); var ThisLines: string; begin ThisLines := GetUrlContent('http://ip-api.com/line/' + edtIpAddress.Text); CodeSite.Send('TForm3.btnGetHostNameClick: ThisLines', ThisLines); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz