Wie thkerkmann geschrieben hat, muss man wohl noch die Bytereihenfolge drehen:
Delphi-Quellcode:
var
ip, ip_start, ip_end: u_long;
begin
ip := inet_addr('
91.59.58.197');
// wichtig: prüfen, ob inet_addr() einen Fehler geliefert hat
if ip = INADDR_NONE
then
raise Exception.CreateFmt('
%s ist keine gültige IP', ['
91.59.58.197'])
ip_start := inet_addr('
91.32.0.0');
//= 8283
// hier Fehlerprüfung ergänzen
ip_end := inet_addr('
91.63.255.255');
//= -49317
// hier Fehlerprüfung ergänzen
// Reihenfolge drehen (big endian -> little endian)
ip := ntohl(
ip);
ip_start := ntohl(ip_start);
ip_end := ntohl(ip_end);
if (
ip >= ip_start)
and (
ip <= ip_end)
then
ShowMessage('
bingo')
else showMessage('
nö');
end;