Avatar billede airforce1 Nybegynder
20. oktober 2002 - 01:44 Der er 16 kommentarer og
1 løsning

Validering af IP adresse

Hey...

Jeg har behov for at validere $INPUT - Denne skal være i format svarende til en ip adresse, f.eks. 192.168.0.1

Hvis denne ikke er det skal den hoppe til en anden side.

Kan man det? Og hvordan?
Avatar billede nemeier Nybegynder
20. oktober 2002 - 02:09 #1
der har lige været et svar...

$ip = getenv("REMOTE_ADDR"); // brugerens IP-nummer
if ($ip <> "192.168.0.1")
{
  header( "Location: www.msn.dk" );
}
Avatar billede nemeier Nybegynder
20. oktober 2002 - 02:11 #2
Der har lige været et svar med hvordan man finder en IP adresse på en bruger.
Der findes mange måde at omdirigere en bruger dette er en af dem.
Søg på 'redirect' under PHP og du vil finde en 4-5 forskellige måder.
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 02:17 #3
if (ereg("[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}",$ip)) {
  ..ok
] else {
  ..nok
}
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 02:18 #4
faktisk:

if (ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)) {
Avatar billede limemedia Nybegynder
20. oktober 2002 - 05:08 #5
erik >> bare for sjov; når vi har [0-9]{1,3} der finder 3 tal, må det første ikke være andet end 0, 1 eller 2. Vil man skulle ud i en if med to regexp conditions for at klare dén eller har du en guldklump hvordan man klarer den i én ?
Avatar billede nocs Nybegynder
20. oktober 2002 - 05:49 #6
erik->
Hvad er det den sidste $ gør, som du tilføjede til sidst?
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 08:08 #7
lj: Så kan man skrive [0-2][0-9]{1,2}
nocs: ^ først og $ til sidst sikrer at hele strengen matches.
Uden de 2 tegn ville dette også accepteres:

  $ip="Ole sad op en 10.2.1.1 og sang"

Man har en tendens til at glemme det mellem klokken 2 og 3 om natten :)
Avatar billede limemedia Nybegynder
20. oktober 2002 - 08:11 #8
erik >> heh, den holder ikke (så langt kunne selv jeg tænke) da
[0-2][0-9]{1,2}
vil afvige 9.9.9.9 eller 99.99.99.99 det skal jo netop være ala

hvis 1 eller 2 tal, så [0-9]{1,2}, hvis 3 tal, så [0-2][0-9]{1,2} - deri tricket

og deri mener jeg behovet for dobbelt if conditions - men nu har jeg jo mesteren på linien med chance for at lære nyt regexp hvis det er muligt med conditions deri
Avatar billede limemedia Nybegynder
20. oktober 2002 - 08:11 #9
afvige = afvise
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 08:25 #10
[0-2]?[0-9]{1,2}
Avatar billede limemedia Nybegynder
20. oktober 2002 - 08:31 #11
*tager sig til hovedet* argh selvfølgelig :)
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 08:41 #12
Eller du skriver

  ..ereg("(0|1|2|3|4|....|254|255)\. ...")...

uden prikkerne. Men ellers, ja, så bør man teste de
individuelle tal efter det regulære udtryk.
Avatar billede airforce1 Nybegynder
20. oktober 2002 - 12:13 #13
nemeier: Jeg mente f.eks. hvis brugeren selv skulle angive ip i f.eks. et form felt. Sorry hvis jeg formulerede forkert.

tjaae.. erikj's eksempel:

if (ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)) {

Ser ud til at virke. Det bedste er nu at jeg ligefrem tror jeg forstår det også :o)

Tusind tak! Opret svar til point.
Avatar billede erikjacobsen Ekspert
20. oktober 2002 - 13:13 #14
Ellers tak. Jeg gider ikke samle på ligegyldige point.
Avatar billede dank Nybegynder
20. oktober 2002 - 13:30 #15
hatten af for det :o) Og det glæder mig at der er folk der stadig vil hjælpe os andre når det "brænder på..."
Avatar billede dank Nybegynder
20. oktober 2002 - 13:30 #16
(selvom jeg da selv samler lidt på point)
Avatar billede airforce1 Nybegynder
20. oktober 2002 - 13:36 #17
hoho.. enig :o) Og tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester