![]() |
AW: Internet IP herausfinden
Was für Fehler?
(daß man auch ständig nachfragen muß :wall:) Abgesehn dafür daß dieser Code eh nur die internen IPs liefert und nicht die öffentlichen. Tipp: Die genutzten APIs in diesem Code arbeiten nur mit ANSI, also ab Delphi 2009 sollte man sich mal die tausenden Unicode-Thenem ansehn, welche hier rumschwirren. PS: Es gibt auch ein [DELPHI]-Tag :zwinker: |
AW: Internet IP herausfinden
Delphi-Quellcode:
Externe-IP sieht man schlicht von extern, also muß man extern fragen.
Function TForm1.GeExtIP: string;
var ndx: integer; begin result:=uppercase(Http1.Get('http:\\www.network-tools.com')); if result='' then result:='GET failed' else begin ndx:=pos('HOST',result); if ndx=0 then result:='host not found' else begin delete(result,1,ndx+4); ndx:=pos('VALUE=',result); if ndx>0 then delete(result,1,ndx+6); ndx:=pos('"',result); if ndx>0 then result:=copy(result,1,ndx); end; end; end; |
AW: Internet IP herausfinden
Zitat:
|
AW: Internet IP herausfinden
Der Quelltext lässt sich fehlerfrei kompilieren und das Projekt lässt sich auch fehlerfrei öffnen. Aber sobald ich auf den Button geklickt habe öffnet sich die Fehlerbox (es steht Fehler darauf) und das obwohl ich mit dem Internet verbunden bin.
Normalerweise sollte auf den Memo die Internet IP angezeigt werden zusammen mit einer OK Box. |
AW: Internet IP herausfinden
Zitat:
|
AW: Internet IP herausfinden
Mal abgesehen davon, dass der Code bei mir einwandfrei funktioniert (D7):
Er tut nicht das, was Du willst. Damit bekommst Du die IP-Adresse der Domain, die der Funktion übergeben wird, und nicht die Deines Rechners. |
AW: Internet IP herausfinden
Ich würde sagen du arbeitest mit Lazarus.
Das musst du davor sagen oder als Tag oder irgendwo im Betreff/Text angeben. Also unter Delphi geht das so: Ohne Indy jetzt:
Delphi-Quellcode:
Versuch mal ob Lazarus die Unit WinInet auch kennt.
uses WinInet;
function GetInetIP(var IP: AnsiString): boolean; var hSession, hURL: HInternet; BufferLen: DWORD; Buffer : AnsiChar; sAppName: string; begin result := false; sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) ; try hURL := InternetOpenURL(hSession, PChar('http://automation.whatismyip.com/n09230945.asp'), nil, 0, 0, 0) ; try BufferLen := 0; repeat InternetReadFile(hURL, @Buffer, 1, BufferLen); IP := IP + Buffer; until BufferLen = 0; result := True; finally InternetCloseHandle(hURL) end finally InternetCloseHandle(hSession) end end; Arbeite nämlich nicht mit Lazarus. |
AW: Internet IP herausfinden
Ja ich arbeite mit Lazarus und Lazarus kennt auch die Unit WinInet. Wenn ich den Quellltext kompiliere kommt aber leider rein garnichts.:cry:
Woran könnte es liegen? |
AW: Internet IP herausfinden
Bist Du einmal durchgesteppt?
|
AW: Internet IP herausfinden
Das sind WinAPIs ... die Funktionieren unter Lazarus genauso, wie unter Delphi.
Abgesehn vielleicht von der Stringcodierung > Ansi, Unicode oder UTF-8, wo man aufpassen muß. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 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