Mod_rewrite Apache - wykryć połączenie z sieci LAN

0

Witam, szukam sposobu na wykrycie połączenia z sieci LAN?

Staram się to zrobić na bazie mod_rewrite, ale nie moge się połapać jak stworzyć te kryteria RewriteCond...

Z tego co wiem poniższe adresy są zarezerwowane dla sieci LAN i nie istnieją w internecie.

10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

0

co chcesz zrobić po wykryciu?
jeśli zablokować / zezwolić na połączenie to sprawa jest prosta, wystarczą regułki "Allow" / "Deny"

Order Deny, Allow
Deny from all
Allow from 10.0.0.0/255.0.0.0
Allow from 172.16.0.0/255.240.0.0
Allow from 192.168.0.0/255.255.0.0

prawdopodobnie będziesz chciał też wziąć pod uwagę adresy loopback 127.0.0.0/8
jeśli chcesz przekierować te adresy przez RewriteCond to musisz się pobawić wyrażeniami regularnymi

RewriteCond %{REMOTE_ADDR} !^10\.
RewriteCond %{REMOTE_ADDR} !^192\.168\.

sprawa jest prosta w przypadku masek 255, ale przy (rzadkiej) sieci 172.16.0.0 sprawa się komplikuje i wyrażenie regularne będzie bardziej złożone - nie chce mi się nad nim myśleć więc zostawiam to Tobie

0

Dzięki za odpowiedź. Na wyrażeniach regularnych leżę i kwiczę.

Z grubsza chodzi o to, że mam rewrite rule który poprawia adres domeny na serwerze. W momencie gdy łącze się przez LAN do serwera ten mi wymusza domene i przez to trace bezpośrednie - szybkie połączenie.

A chciałbym żeby w wypadku połączenia z LAN nie poprawiał mi adresu.

0

znacznie lepiej dodać wpis na ruterze / serwerze dns
ewentualnie w %windir%\system32\drivers\etc\hosts lub /etc/hosts

ruter powinien być tak skonfigurowany że jeśli próbujemy się połączyć z komputerem z lokalnej sieci używając jego zewnętrznego ip to i tak połączenie nie wyjdzie poza ruter
dodaj wpis do tablicy trasowania

1 użytkowników online, w tym zalogowanych: 0, gości: 1