Moin!
$_SERVER["REMOTE_ADDR"]
hier steht die IP des Besuchers.Meistens.
Immer.
Nun brauchst Du nur noch eine Abrage:
if ($_SERVER["REMOTE_ADDR"]=="192.111.111.111")
{
...Sollte zwischen Website-Besucher und dem Website-Server ein Proxy hängen,
dann ist REMOTE_ADDR nicht zwingend die IP des Website-Besuchers.
Dieser Fall kann eintreten, ist aber irrelevant.
1. Ein Proxy ist nicht gezwungen, die tatsächliche IP des anfordernden Rechners durchzureichen.
2. Eine solche IP kann häufig aus einem privaten IP-Bereich kommen und ist deshalb alles andere als eindeutig.
3. Die Angabe von HTTP_X_FORWARDED_FOR ist beliebig manipulierbar und, auch vollkommen ohne Proxy, von jedem passend programmierten Client in den Request einsetzbar. Durch das Verlassen auf diese Angabe öffnest du eine krasse Sicherheitslücke.
Ich denke, es ist vollkommen in Ordnung, Proxys einfach nicht gesondert zu berücksichtigen. Wer Zugriff basierend auf seiner IP haben will, der weiß, dass er dem Server seine richtige IP präsentieren muß, und nicht die eines Proxys - oder dass er tatsächlich einen bestimmten Proxy mit der richtigen IP benutzen muß, und nicht direkt zugreifen darf.
- Sven Rautenberg
"Love your nation - respect the others."