IP Adresse auslesen
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
IP Adresse auslesen
Hallo Leute
Ich habe ein ganz simples Problem:
Ich möchte die IP-Adresse des Users abfragen.
Aber ich habe alle möglichen Foren, google und auch .pas Units danach durchsucht, aber nix gefunden.
und nun hoffe ich, dass mir einer(oder eine) von euch helfen kann.
Komoluna
Ich habe ein ganz simples Problem:
Ich möchte die IP-Adresse des Users abfragen.
Aber ich habe alle möglichen Foren, google und auch .pas Units danach durchsucht, aber nix gefunden.
und nun hoffe ich, dass mir einer(oder eine) von euch helfen kann.
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: IP Adresse auslesen
Komoluna hat geschrieben:Ich möchte die IP-Adresse des Users abfragen.
Für deine Gedanken:
Du hast eine verteilte Anwendung (das heißt: sie arbeitet über ein Netzwerk). Ob du in einer Client-Server- oder Peer-to-Peer-Umgebung bist, spielt hier keine Rolle.
In Netzwerken hast du üblicherweise ein Verbindung zwischen einem Client (Sender) und Server (Listener). Du möchtest am Listener wissen, wer (welche Adresse) dein Sender ist.
Wie das geht ist abhängig davon, welches Netzwerk du verwendest und wie du darauf zugreifst. Dazu kann mir auch Google (und google ist allwissend ), nichts sagen.
So verbleibe ich voller Hoffnung auf göttliche oder deine Eingaben mit freundlichen Grüßen
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: IP Adresse auslesen
Komoluna hat geschrieben:Ich möchte die IP-Adresse des Users abfragen.
Vermutlich meinst Du "Die IP-Adresse des Recghners, auf dem das Perogramm läuft."
Die IP-Adresse gibt es aber nicht. Der Rechner kann keine, eine oder mehrere IP-Adressen haben, je nachdem wie viele (virtuelle) Netzwerk-Anschlüsse aktiv sind, die jeder eine eigene IP-Adresse haben.
-Michael
-
- Beiträge: 298
- Registriert: Di 23. Nov 2010, 23:41
- OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
- CPU-Target: 32Bit/64Bit
- Wohnort: Geldern
- Kontaktdaten:
Re: IP Adresse auslesen
Z.B. wenn Du die IP ermitteln willst mit der Du ins Internet gehst:
http://checkip.dyndns.org/
und das Ergebnis (result) mit
bearbeiten!
http://checkip.dyndns.org/
und das Ergebnis (result) mit
Code: Alles auswählen
result := Copy(result, Pos('Current IP Address: ', result) + 20, Pos('</body', result) - Pos(':', result) - 2);
bearbeiten!
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
-
- Beiträge: 298
- Registriert: Di 23. Nov 2010, 23:41
- OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
- CPU-Target: 32Bit/64Bit
- Wohnort: Geldern
- Kontaktdaten:
Re: IP Adresse auslesen
Nun die kleine Lösung für Windows, der folgende Code liefert Dir
-> Rechner.Netz(IP)
z.B.: mein-Rechner.fritz.box(192.168.178.35)
-> Rechner.Netz(IP)
z.B.: mein-Rechner.fritz.box(192.168.178.35)
Code: Alles auswählen
uses Winsock;
...
function NameIP():string;
type
Name = array[0..100] of Char;
PName = ^Name;
var
IPaddr: string;
HEnt: pHostEnt;
HName: PName;
WSAData: TWSAData;
ii: dword;
begin
if WSAStartup($0101, WSAData) <> 0 then
raise Exception.create( 'Winsock is not responding.' )
else
begin
IPaddr := '';
New(HName);
if GetHostName(HName^, SizeOf(Name)) = 0 then
begin
HEnt := GetHostByName(HName^);
IPaddr := Format('%s',[iNet_ntoa(PInAddr(HEnt^.h_addr_list^)^)]);
ii:=inet_addr(pchar(IPaddr));
HEnt := GetHostByAddr(@ii,sizeof(ii),PF_INET);
result := HEnt^.h_name + '(' + IPaddr +')';
end
else
case WSAGetLastError of
WSANOTINITIALISED:raise Exception.create('WSANotInitialised');
WSAENETDOWN :raise Exception.create('WSAENetDown');
WSAEINPROGRESS :raise Exception.create('WSAEInProgress');
end;
Dispose(HName);
WSACleanup;
end;
end;
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: IP Adresse auslesen
Wenn du die IP-Adressen eh an dich übermitteln willst, musst du das Programm nur automatisch eine Webadresse aufrufen/abrufen lassen, die die IP-Adressen der User mitloggt.
-
- Beiträge: 957
- Registriert: Mo 11. Sep 2006, 22:56
Re: IP Adresse auslesen
carli hat geschrieben:Wenn du die IP-Adressen eh an dich übermitteln willst, musst du das Programm nur automatisch eine Webadresse aufrufen/abrufen lassen, die die IP-Adressen der User mitloggt.
Das kann auch nur die Adresse der Routers sein.
Kommt drauf an was erreicht werden soll,aber so einfach wie die Anforderung klingt ist sie nicht.
(Mehrere Netzwerkkarten,Internetzugang über Router oder Proxy usw usf)
Man müsste schon wissen um was es genau geht.