![]() |
IP mit Winsock API incrementieren
Hallo,
Ich habe sehr wenig Erfahrung mit der Winsock API und wollte einfach mal eine IP incrementieren. So habe ich es versucht. Leider bekomme ich anstelle von 127.0.0.2, 128.0.0.1 ausgegeben, wieso?
Delphi-Quellcode:
var
a: integer; b: in_addr; begin a := inet_addr('127.0.0.1'); inc(a); b.S_addr := a; showmessage(inet_ntoa(b)); end; |
Re: IP mit Winsock API incrementieren
Das ist ein endian-Problem. Auf Intel-CPUs liegt immer das am wenigsten signifikante Byte am Anfang, die WinSock-API verwendet aber Big Endian.
|
Re: IP mit Winsock API incrementieren
Zitat:
|
Re: IP mit Winsock API incrementieren
ntohl
MfG odg |
Re: IP mit Winsock API incrementieren
Zitat:
Delphi-Quellcode:
var
a: integer; b: in_addr; begin a := inet_addr('127.0.0.1'); inc(a); b.S_addr := ntohl(a); showmessage(inet_ntoa(b)); end; |
Re: IP mit Winsock API incrementieren
Delphi-Quellcode:
Du musst einmal von Big zu Litte Endian und dann wieder zurückkonvertieren.
i := ntohl( inet_addr( '127.0.0.1' ) );
Inc( i ); a.S_addr := htonl( i ); ShowMessage( inet_ntoa( a ) ); |
Re: IP mit Winsock API incrementieren
Zitat:
|
Re: IP mit Winsock API incrementieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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