Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Пишу интересный скрипт. Нужна помощь. (https://forum.antichat.xyz/showthread.php?t=40510)

Linuxoid 21.05.2007 09:05

Пишу интересный скрипт. Нужна помощь.
 
Значит воть... Пишу крайне интересный и, что главное, полезный скрипт. Что именно он делает - озвучу через пару дней, а то сразу кто нить идею сопрет... :rolleyes:

Короче проблемы такие... :)

1. Проферка ИПов.
Есть файл ip.txt. В нем записано:
Код:

127.0.0.1
127.0.0.2
127.0.0.3
127.0.0.4

Как реализовать проверку, содержится ли ИП человека, который ломица на сайт в списке? Понимаю, что это очень просто, но сам понять не могу...

PHP код:

if(ip есть в списке){
echo(
"Бобруйск прямо по коредору.");
} else {
echo(
"Всегда рады вашему визиту!");
}; 

Кто поможет - буду благодарен. Повторюсь - просьба не орать "Ламер! Тут все просто!".

2. Проверка файла на сайте.
Имеем сайт. Пусть будет http://ya.ru/. У него в корне лежит файл preved.html (http://ya.ru/preved.html). Как сделать, чтобы мой пхп скрипт
а) проверял наличие данного файла.
б) сравнивал его с эталонным (тоесть чтоб содержимое html кода 1 в 1 было с файлом, по которому сверяет скрипт.)
По пункту б у меня, честно говоря, идея была только одна: сравнивать контрольные суммы MD5. Но для этого надо получить файл както... Да и если сайтов 1000+, то скачивание и проверка всех файлов стает несколько неудобной...

Ну пока все. Есть еще пара вопросов, но с ними еще сам поковыряюсь (не люблю неразобравшись сразу орать "не работает")...


Помогите кто нить пожалуйста! ;)

Alexsize 21.05.2007 09:19

function get_user_ip()
{$strRemoteIP=$_SERVER['REMOTE_ADDR'];}
Получил ip, теперь записал его в лог, как вариант в бд. Потом сравниваешь каждого зашедшего с базой. Если (..) то (..) иначе (..)

hackconnect 21.05.2007 09:39

запиши в какуюнить переменную то что вернет file('ip.txt'); и шпарь по циклу проверку на соответствие. про trim() не забудь, а то все проверки вернут false.

Alexsize
что за бредовая функция? память не экономим
PHP код:

function get_client_ip()
{
   return (empty(@
getenv('HTTP_X_FORWARDED_FOR')) ? getenv('REMOTE_ADDR') : getenv('HTTP_X_FORWARDED_FOR');



Linuxoid 21.05.2007 10:11

Эмммм... Товарищи... Я наверное тупой, но у меня все сделано так:
PHP код:

<?php
$ip 
$_SERVER['REMOTE_ADDR'];
$entry_line "$ip\n";
$fp fopen("ip.txt","a");
fputs($fp$entry_line);
fclose($fp);
?>

С этим все нормально...
Вы мне полностью пример приведите как это проверять? :) А то я чет недогоню... :)

А по 2 пункту вообще некаких идей чтоли? :) Он для меня сейчас главный... :) С 1 пунктом всетаки проще...

GreenBear 21.05.2007 10:21

Цитата:

Как реализовать проверку, содержится ли ИП человека, который ломица на сайт в списке? Понимаю, что это очень просто, но сам понять не могу...
PHP код:

<?php

$ips 
file('ip.txt');
foreach(
$ips as $ip){
    if(
$ip == $_SERVER['REMOTE_ADDR']){
        
// v bobruysk
    
}
}

?>

PHP код:

<?php
$f 
fopen('ip.txt''r');
while(!
feof($f)){
    if(
rtrim(fgets($f)) == $_SERVER['REMOTE_ADDR']){
        
//v bobruysk
    
}
}
?>

PHP код:

<?php
$ips 
file('ip.txt');
if(
array_search($_SERVER['REMOTE_ADDR'], $ips)){
    
//v bobruysk
}
?>

выберай что нравится ..

Цитата:

2. Проверка файла на сайте.
PHP код:

<?php
$md5 
md5_file('url.php');
if(
md5_file('url.php') == $md5){
    echo 
'ok';
}
?>

это если локальный файл..

Linuxoid 21.05.2007 10:29

GreenBear
Огромное спасибо!!! :) Я примерно так и догадывался... ;) Но чтот сам сформулировать не смог реализацию...

GreenBear 21.05.2007 10:45

всегда пожалуста ..

Linuxoid 21.05.2007 10:54

Ну короче еще по хранению инфы в файле вопрос...

Файл users.txt
Код:

pupkin|ya.ru|pupkin@mail.ru|lamer
root|linux.org.ru|root@ya.ru|admin
dialsoft|dialsoft.info|root@dialsoft.info|coder

И имеем скрипт:
PHP код:

...открываем файл users.txtчитаем все в массив (сепаратор |, все идет в переменную $u[])

if(
$u[1] == "ya.ru"){
УДАЛЯЕМ СТРОЧКУ ИЗ ФАЙЛА}; 

Вот как это реализовать я вообще непойму... :) Ну, чтобы строка определенная удалялась всмысли.
Извините если сильно туплю... :)

GreenBear 21.05.2007 11:08

ну так же сделай через foreach по строкам..
PHP код:

<?php
$users 
file('users.txt');
$f fopen('users.txt''w'); fclose($f);
$f fopen('users.txt' ,'a');
foreach(
$users as $user){
    
//tut razbey
    
if($u[1] != 'ya.ru'){
        
fwrite($f$user."\n");
    }
}
fclose($f);

?>


Linuxoid 22.05.2007 04:32

Еще есть дело... :)

Сравнение контрольной суммы файла на удаленном сервере с эталонным локальным файлом
PHP код:

<?php 
$md5 
md5_file('http://example.ru/2.exe'); 
if(
md5_file('2.exe') == $md5){ 
    echo 
'Ok'
} else {
echo 
'Fufel';
};
?>

Вот как сделать, что если файл не найден (любой, хоть локальный, хоть удаленный), то чтоб выводилось "Not found", а не мат пхп на тему отсутствия файла? :)


Время: 11:01