Avatar billede N00b Novice
18. april 2009 - 22:01 Der er 15 kommentarer og
1 løsning

Tjek om intern eller extern tilgang til server

Findes der en måde hvor på jeg via et php script kan tjekke om det er lokalt eller extrent serveren bliver tilgået?

Det jeg vil er:
Hvis jeg fra en maskine i eget netværk tilgår serveren, kommer jeg på mit intranet, men hvis jeg kommer ude fra (offentlig ip / dyndns hostnavn) så bliver jeg videre stillet til andet sted eller mødt med ingen adgang meddeles.

Håber at det kan lade sig gøre.

/Rex
Avatar billede arne_v Ekspert
18. april 2009 - 22:07 #1
Du må kunne teste på:
  $_SERVER['REMOTE_ADDR']
Avatar billede erikjacobsen Ekspert
18. april 2009 - 22:08 #2
Du kan formentlig checke IP-adressen. Hvis IP-adresserne hedder 10.0.0.x på¨dit LAN, så hedder de i hvert fald ikke det udefra.
Avatar billede N00b Novice
18. april 2009 - 22:14 #3
Øhh kunne man få et eksempel ?
Jeg er ikke en haj til php :'(

/Rex
Avatar billede arne_v Ekspert
18. april 2009 - 22:17 #4
if(substr($_SERVER['REMOTE_ADDR']), 0, 7) != '10.0.0.') {
    header('Location: skrupaf.html');
    exit;
}
Avatar billede N00b Novice
18. april 2009 - 22:53 #5
Får denne fejl meddelse

Parse error: syntax error, unexpected ',' in /share/MDA_DAT/web/index.php on line 2

Dette er index.php'en
<?php
if (substr($_SERVER['REMOTE_ADDR']), 0, 7) != '192.165.2.') {
    header('Location: intranet.html');
    exit;
}
?>

Hvor går jeg galt ?
/Rex
Avatar billede erikjacobsen Ekspert
18. april 2009 - 22:56 #6
<?php
if (substr($_SERVER['REMOTE_ADDR'], 0, 10) != '192.165.2.') {
    header('Location: intranet.html');
    exit;
}
?>
Avatar billede N00b Novice
18. april 2009 - 23:13 #7
Hmm nu er fejlen væk men siden bliver bare blank? - som om at der ikke videre stilles til intranet.html.

/Rex
Avatar billede erikjacobsen Ekspert
18. april 2009 - 23:15 #8
Ikke hvis du kommer fra 192.165.2.x - så skal siden vel være blank, som du har skrevet det. Du bliver omstillet hvis man kommer fra en anden IP-adresse.

Men alle sider som kun må være tilgængelige fra dine LAN-adresser, skal indeholde sådan et check.
Avatar billede arne_v Ekspert
18. april 2009 - 23:33 #9
Der var en parentes for meget.

Men som Erik er inde på skal du teste på det rigtige IP net.
Avatar billede N00b Novice
18. april 2009 - 23:33 #10
Jeg får en blank side hvis jeg kommer fra lokal nettet, men bliver videre sendt hvis jeg kommer udefra?

/Rex
Avatar billede erikjacobsen Ekspert
19. april 2009 - 00:27 #11
Ja, det er sådan din if-sætning vender. Det er ikke helt sådan Arnes oprindelige forslag var.
Avatar billede N00b Novice
19. april 2009 - 00:37 #12
dvs. hvis vi gør sådanne

<?php
if (substr($_SERVER['REMOTE_ADDR'], 0, 10) !<> '192.165.2.') {
    header('Location: intranet.html');
    exit;
}
?>

Så bør det virke?

Tester lige og vender tilbage

/Rex
Avatar billede N00b Novice
19. april 2009 - 00:51 #13
Så virker den sq

rodede lidt mere rundt i det.

<?php
if (substr($_SERVER['REMOTE_ADDR'], 0, 10) == '192.165.2.') {
    header('Location: intranet.html'); /* forwarder to intranet */
    exit;
}
else {
    header('Location: 404.html'); /* error page */
    exit;
}
?>

Så virker det som det skal...
Takker for hjælpen

Det bør vel være erik der skal have points, her da han har været mest aktiv og smed eksemplet :)

Smider du et svar ?

/Rex
Avatar billede erikjacobsen Ekspert
19. april 2009 - 09:05 #14
Nej tak.
Avatar billede N00b Novice
19. april 2009 - 13:30 #15
hvad så med arne? vil du have point'sne
Avatar billede N00b Novice
10. maj 2009 - 18:19 #16
Der er åbentbart ingen der vil have points :(

Men lukker Q. et her
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
Kurser inden for grundlæggende programmering

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