PDA

Bekijk Volledige Versie : [PHP] script voor ip-specifieke tekst



richard
14/01/04, 20:30
Hallo,

Ik zoek een PHP-script waarmee ik op basis van ip-adres binnen een
pagina een aparte tekst met html kan laten zien.
Het is niet de bedoeling dat elk opgegeven ip-adres een eigen
specifieke tekst krijgen te zien, maar wel meerdere ip-adressen 1
script.

Ik heb wel een (block-)script waarmee ik een error-message kan laten
zien, maar dat werkt weer niet binnen in een pagina.

Mochten mensen een dergelijke script hebben OF tips hebben voor
zoektermen waarmee ik zelf kan verder zoeken, dan hou ik me van harte
aanbevolen.

groet,
Richard
geen verstand van PHP, maar bereid te leren :-)

Ronald Klip
14/01/04, 20:45
richard schreef:
>
> Ik zoek een PHP-script waarmee ik op basis van ip-adres binnen een
> pagina een aparte tekst met html kan laten zien.
> Het is niet de bedoeling dat elk opgegeven ip-adres een eigen
> specifieke tekst krijgen te zien, maar wel meerdere ip-adressen 1
> script.

Je kunt kijken naar $_SERVER['REMOTE_ADDR'] , dat biedt een redelijke
indicatie van 'het' IP-nummer van de bezoeker (ik neem aan dat je dat
bedoelt).

--
groet, Ronald

Daniel Tryba
14/01/04, 20:45
richard <nee@replyvia.newsgroups> wrote:
> Ik zoek een PHP-script waarmee ik op basis van ip-adres binnen een
> pagina een aparte tekst met html kan laten zien.
> Het is niet de bedoeling dat elk opgegeven ip-adres een eigen
> specifieke tekst krijgen te zien, maar wel meerdere ip-adressen 1
> script.

Je kunt kijken naar $_SERVER['REMOTE_ADDR']

<?php
switch($_SERVER['REMOTE_ADDR'])
{
case '127.0.0.1':
echo 'Localhost';
break;
default:
echo 'Boring default';
break;
}
?>

Valkuilen: het kan een proxy zijn....

Maar dit is wel vaker besproken in deze group... zoek dus eens in het
archief.

> Ik heb wel een (block-)script waarmee ik een error-message kan laten
> zien, maar dat werkt weer niet binnen in een pagina.

Huh?

--

Daniel Tryba

richard
14/01/04, 22:00
On Wed, 14 Jan 2004 19:34:40 +0000 (UTC), Daniel Tryba
<news_nl.internet.www.server-side@canopus.nl> wrote:

>Je kunt kijken naar $_SERVER['REMOTE_ADDR']
>
><?php
>switch($_SERVER['REMOTE_ADDR'])
>{
> case '127.0.0.1':
> echo 'Localhost';
> break;
> default:
> echo 'Boring default';
> break;
>}
>?>

Dit werkt perfect, maar ik kan er helaas geen PHP-include tags in
plaatsen. Is daar misschien een work-a-round voor?

>> Ik heb wel een (block-)script waarmee ik een error-message kan laten
>> zien, maar dat werkt weer niet binnen in een pagina.
>
>Huh?

Ik zal 'm hieronder even posten, misschien dat dat meer zegt dan dat
ik kan uitleggen :-)

<?
// allow = toestaan, deny = weigeren
// wildcards '*" voor 1-3 nummer, '?' voor 1 nummer

$_allow_ip = array( '*.*.*.*' );
$_deny_ip = array( 'xx.xx.xx.xx');
$_error_message = ' ';

// -----------------------------------------------------------------
// Hieronder niets wijzigen
// -----------------------------------------------------------------

$_ip = $_SERVER['REMOTE_ADDR'];
$_allowed = false;
foreach($_allow_ip as $_a_ip){
$_a_ip = str_replace('.','\.',$_a_ip);
$_a_ip = str_replace('*','[0-9]{1,3}',$_a_ip);
$_a_ip = str_replace('?','[0-9]{1}',$_a_ip);
if(ereg("^{$_a_ip}$", $_ip)) $_allowed = true;
}
if(!$_allowed) die($_error_message);

$_allowed = true;
foreach($_deny_ip as $_d_ip){
$_d_ip = str_replace('.','\.',$_d_ip);
$_d_ip = str_replace('*','[0-9]{1,3}',$_d_ip);
$_d_ip = str_replace('?','[0-9]{1}',$_d_ip);
if(ereg("^{$_d_ip}$", $_ip)) $_allowed = false;
}
if(!$_allowed) die($_error_message);

?>


--

groet,
Richard

Daniel Tryba
14/01/04, 22:15
richard <nee@replyvia.newsgroups> wrote:
>>Je kunt kijken naar $_SERVER['REMOTE_ADDR']
>>
>><?php
>>switch($_SERVER['REMOTE_ADDR'])
>>{
[knip]
>>}
>>?>
>
> Dit werkt perfect, maar ik kan er helaas geen PHP-include tags in
> plaatsen. Is daar misschien een work-a-round voor?

Wat is een php-include tag? Je kunt gewoon include() gebruiken binnen de
cases. Ik zie dus geen probleem.

>>> Ik heb wel een (block-)script waarmee ik een error-message kan laten
>>> zien, maar dat werkt weer niet binnen in een pagina.
>>
>>Huh?
>
> Ik zal 'm hieronder even posten, misschien dat dat meer zegt dan dat
> ik kan uitleggen :-)
>
> <?
[knip]
> if(!$_allowed) die($_error_message);
>
> ?>

Waarom zou dat niet binnen een pagina werken?

--

Daniel Tryba

richard
15/01/04, 10:15
On Wed, 14 Jan 2004 21:12:36 +0000 (UTC), Daniel Tryba
<news_nl.internet.www.server-side@canopus.nl> wrote:

>Wat is een php-include tag? Je kunt gewoon include() gebruiken binnen de
>cases. Ik zie dus geen probleem.

(...)

>Waarom zou dat niet binnen een pagina werken?

Ik vrees dat je vragen stelt die mijn PHP-kennis te boven gaan. Ik ga
er nog eens een tijd mee experimenteren, kijken of ik er zo achterkom
en dan hoop ik antwoord te kunnen geven op die vragen.
Tot zover erg bedankt :-)

groet,
Richard

Daniel Tryba
15/01/04, 21:15
richard <nee@replyvia.newsgroups> wrote:
>>Wat is een php-include tag? Je kunt gewoon include() gebruiken binnen de
>>cases. Ik zie dus geen probleem.
>
> (...)
>
>>Waarom zou dat niet binnen een pagina werken?
>
> Ik vrees dat je vragen stelt die mijn PHP-kennis te boven gaan. Ik ga
> er nog eens een tijd mee experimenteren, kijken of ik er zo achterkom
> en dan hoop ik antwoord te kunnen geven op die vragen.

Ik stel alleen maar vragen over wat je bedoelt.... MAW wat is je
probleem en waarom voldoet je "block" script niet?

--

Daniel Tryba