Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Wipe am 19.06.02 - 11:14:26

Titel: Problem @Matches - IP Adressen
Beitrag von: Wipe am 19.06.02 - 11:14:26
Hallo,

ich soll in unserer Inventar DB eine Eingabevaledierung für IP Adressen hinterlegen.   >:( Ich steh total auf dem Schlauch.  ???
Beispiel:

Unsere Zentrale hat einen Range von 160.1.32.xxx bis 160.1.50.xxx
Niederlassungen haben einen Range von 200.1.NL-Nr.xxx Beispiel 200.1.11.177
und bestimmte Ranges sind reserviert.

1. Wie checke ich generell die die Stellen ?
2. Wie checke ich detailiert auf den gesamten Range ?
3. Wie checke ich auf reservierte Ranges ?

Hat jemand sowas schon gemacht ?? Bin um jeden Tip und Hilfe dankbar.


PS: Ich glaube so eine Eingabevaledierung sprengt das Formelfenster.  ;)

Gruss
Bubble



Titel: Re: Problem @Matches - IP Adressen
Beitrag von: eknori am 19.06.02 - 14:50:11
Check this out !! Damit kannst du prüfen, ob sich eine IP in einem bestimmten Range befindet

firstPart := @Word( IPAddressField; "."; 1 );
secondPart := @Word( IPAddressField; "."; 2 );
thirdPart := @Word( IPAddressField; "."; 3 );
FourthPart := @Word( IPAddressField; "."; 4 );

REM "Check IP format";
@If(firstPart=""; @Failure("Wrong IP address"); NULL);
@If(SecondPart=""; @Failure("Wrong IP address"); NULL);
@If(thirdPart=""; @Failure("Wrong IP address"); NULL);
@If(FourthPart=""; @Failure("Wrong IP address"); NULL);

REM "If you are here, it means that your IP address has the right format : XXX-XXX-XXX-XXX";
REM "Check if each part is a number";
@If(@IsError(@TextToNumber(firstPart)); @Failure("IP address requires only numbers"); NULL);
@If(@IsError(@TextToNumber(secondPart)); @Failure("IP address requires only numbers"); NULL);
@If(@IsError(@TextToNumber(thirdPart)); @Failure("IP address requires only numbers"); NULL);
@If(@IsError(@TextToNumber(fourthPart)); @Failure("IP address requires only numbers"); NULL);

REM "If you are here, then you have an IP Address.";
REM "but is it one of yours ?";
one := @TextToNumber(firstPart);
second := @TextToNumber(secondPart);
third := @TextToNumber(thirdPart);
fourth := @TextToNumber(fourthPart);

@If(one< YOUR_LIMIT_ONE_DOWN | one > YOUR_LIMIT_ONE_UP; @Failure("Wrong range"); NULL);
@If(second< YOUR_LIMIT_SECOND_DOWN | second > YOUR_LIMIT_SECOND_UP; @Failure("Wrong range"); NULL);
@If(third< YOUR_LIMIT_THIRD_DOWN | third > YOUR_LIMIT_THIRD_UP; @Failure("Wrong range"); NULL);
@If(fourth< YOUR_LIMIT_FOURTH_DOWN | fourth > YOUR_LIMIT_FOURTH_UP; @Failure("Wrong range"); NULL);

REM "if you are here, your IP address is one of yours..."



eknori