"Birger" <sdc@bbsorensen.com> skrev i en meddelelse
news:475d1dc1$0$90266$14726298@news.sunsite.dk...
> "Niels" <....> skrev i en meddelelse
> news:475c3c47$0$15901$edfadb0f@dtext01.news.tele.dk...
>> hej Birger
>> jeg har prøvet at rode lidt med det du lagde ind men det stoppede
>> undervejs her er den komplette bankode jeg bruger, den logger til en fil
>> så jeg kan altid se om der har været nogen .
>>
>> <!--Start of Banned IP Addresses & Security Log Script -->
>> <?php // Allows you to ban people from viewing your website.
>> $getip = $_SERVER["REMOTE_ADDR"];
>> $getdate = date( "l dS of F Y" );
>> $gettime = date( "h:i:sa (@B" );
>>
>> $banned_ip = array();
>> $banned_ip[] = '58.65.235.217';
>> $banned_ip[] = '64.15.152.20';
>> $banned_ip[] = '90.156.144.121';
>> $banned_ip[] = '217.16.16.204';
>> $banned_ip[] = '217.16.16.215';
>> $banned_ip[] = '217.16.16.218';
>> $banned_ip[] = '183.222.23.214';
>> $banned_ip[] = '83.222.23.219';
>> $banned_ip[] = '83.222.23.243';
>> $banned_ip[] = '83.222.23.214';
>> $banned_ip[] = '83.222.23.231';
>> $banned_ip[] = '83.222.23.238';
>> $banned_ip[] = '83.222.23.203';
>> $banned_ip[] = '83.222.23.200';
>> $banned_ip[] = '83.222.23.247';
>> $banned_ip[] = '83.222.23.229';
>>
>>
>> foreach($banned_ip as $banned) {
>> $ip = $_SERVER['REMOTE_ADDR'];
>> if($ip == $banned){
>> echo "the site is closed";
>> echo "<br />";
>> echo "------------------------------------";
>> $fp = fopen("ip_data.dat", "a");
>> fputs($fp, "**BANNED** Visit logged on $getdate at $gettime internet
>> time) for IP: $getip
>> ");
>> fputs($fp, "");
>> fclose($fp);
>> exit();
>> }
>> }
>> ?>
>>
>
> Jeg overså at split tager regexp som delimiter parameter, og det er
> sikkert derfor det "går i stå" - hvilket ikke er en specielt brugbar
> beskrivelse af en fejl ;>)
> Brug explode() i stedet.
>
>
>> $banned_ip[] = '58.65.235.217'; hostfresh - Hong Kong
>> $banned_ip[] = '64.15.152.20'; iWeb - Montreal
>> $banned_ip[] = '90.156.144.121'; masterhost - Rusland
>> $banned_ip[] = '217.16.16.204'; masterhost - Rusland
>> $banned_ip[] = '217.16.16.215';
>> $banned_ip[] = '217.16.16.218';
>> $banned_ip[] = '183.222.23.214'; IANA
>> $banned_ip[] = '83.222.23.219'; masterhost - Rusland
>> $banned_ip[] = '83.222.23.243';
>> $banned_ip[] = '83.222.23.214';
>> $banned_ip[] = '83.222.23.231';
>> $banned_ip[] = '83.222.23.238';
>> $banned_ip[] = '83.222.23.203';
>> $banned_ip[] = '83.222.23.200';
>> $banned_ip[] = '83.222.23.247';
>> $banned_ip[] = '83.222.23.229';
>
>
> Antager at listen er længere end som så ;>)
> Der er een i Hong Kong, 1 i Canada, een mere i Nordamerika og resten er
> den samme "MASTERHOST Network Operations" i Rusland.
>
> Men til din kode.
> Du har to variable med samme indhold - $ip og $getip.
> Du sammenligner med den ene, og gemmer den anden.
> Det er sikkert godt nok - men ganske overflødigt, og lidt noget rod.
>
> Her er et alternativt forslag:
>
> $getip = $_SERVER["REMOTE_ADDR"];
> $getdate = date( "l dS of F Y" );
> $gettime = date( "h:i:sa (@B" );
>
> // Sæt det sidste tal i $banned_ip adressen til x, for de udbydere du vil
> blokere, f.eks.
> $banned_ip = array();
> $banned_ip[] = '58.65.235.x'; // hostfresh - Hong Kong
> $banned_ip[] = '64.15.152.20'; // iWeb - Montreal
> $banned_ip[] = '90.156.144.x'; // masterhost - Rusland#1
> $banned_ip[] = '217.16.16.x'; // masterhost - Rusland#2
> $banned_ip[] = '183.222.23.214'; // IANA
> $banned_ip[] = '83.222.23.x'; // masterhost - Rusland#3
>
> $ip_arr = explode( '.', $getip);
>
> $ban = false;
> $idx = 0;
> while (( !$ban) && ( $idx < count( $banned_id)) {
> $ban_arr = explode( '.', $banned_id[ $idx]);
> $ban = ( $ip_arr[0] = $ban_arr[0]) && ( $ip_arr[1] = $ban_arr[1]) &&
> ( $ip_arr[2] = $ban_arr[2]) && (( $ban_arr[3] = 'x') || ( $ip_arr[3] =
> $ban_arr[3]));
> $idx++;
> }
>
> if ( $ban) {
> echo 'Spammers are not welcome<br />'."\n";
> echo ' "~"<br />'."\n";
> echo ' ( @ @ )<br />'."\n";
> echo '+----ooo0--(_)--0ooo----+<br />'."\n";
> // og hvad du ellers vil...
> // brug $getip til logging
> }
>
>
> Et eller andet sted, er der noget forkert med metoden.
> For det første, udelukker du seriøse besøgende, fordi andre med samme
> udbyder ikke forstår at opføre sig iht. nettikette.
> For det andet, bør den involverede udbyder have besked om hans kunders
> opførsel. Evt. opfølgning til overordnede registratorer, hvis det ikke
> hjælper.
> Der er selvfølgelig ingen der kan tvinge nogen til at rapportere. Men hvis
> ingen rapporterer, kommer man aldrig unoderne til livs.
>
>
> Birger
> -----
>
http://bbsorensen.dk
>
har prøvet at rode lidt med dit forslag men PHP stopper og siden vises ikke,
jeg har husket <? ?> omkring scriptet
der er nok en lille fejl der stopper afviklingen
Niels