ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #13291  
Старый 11.11.2009, 21:40
Vlad&slav
Участник форума
Регистрация: 01.01.2009
Сообщений: 138
С нами: 9135251

Репутация: 82
По умолчанию

Как посредством php прочекать у пределёного адреса порт, тоесть просто проверить можно ли подключиться, порт не 80 а типа 23,RDP, и чёнть вроде того. Если ешё можно то чтобы был таймаут. Зарание благодарю.
 
Ответить с цитированием

  #13292  
Старый 11.11.2009, 21:44
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
С нами: 9454841

Репутация: 504


По умолчанию

Цитата:
Сообщение от Vlad&slav  
Как посредством php прочекать у пределёного адреса порт, тоесть просто проверить можно ли подключиться, порт не 80 а типа 23,RDP, и чёнть вроде того. Если ешё можно то чтобы был таймаут. Зарание благодарю.
http://www.php.su/articles/?cat=examples&page=065
 
Ответить с цитированием

  #13293  
Старый 11.11.2009, 22:39
phpdreamer
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
С нами: 8838619

Репутация: 123
По умолчанию

Vlad&slav, вот сканер портов на пхп

PHP код:
<?php
error_reporting 
(E_ALL); // вывод сообщений для всех ошибок

if(empty($_POST["ip"]))die ('<html> 
<head>
<title>Online Port Scanner</title>
</head>
<body bgcolor="Black">
<div align="center"><font face="Tahoma" color="Gray">Online Port Scanner</font></div><br><br>
<form action="p.php" method="POST">
<font face="Tahoma" color="Silver"><div align="center">IP-address/Host&nbsp;<input maxlength="15" size="13" type="Text" name="ip" value="">
<br><input type="Submit" value="Scan">
</div>
</font>
</form>
</body>
</html>'
); //форма ввода


$portz = array("20","21","23","25","39","43","69","79","80","88","107","109","110",
"111","137","138","139","143","161","464","512","513","514","530",
"544","636","749","1433","1434");

// в данном массиве будут храниться номера портов, которые необходимо сканировать.
// это сделано для эффективного использования ресурсов сервера, зачастую провайдер
// выставляет небольшой таймаут для php скриптов и получится что сканируя все
// 65тысяч портов мы поступаем очень нерационально так как реально полезные из них
// всего пару процентов ;)

$descr = array("FTP data", "FTP control", "Telnet","Simple Mail Transfer Protocol",
"rlp: Resource Location Protocol", "whois", "tftp","finger","http",
"kerberos","rtelnet","pop2","pop3","sunrpc:SUN Remote Procedure Call",
"Netbios name service","Netbios name service", "Netbios datagram service",
"imap4","snmp","kpasswd: kerberos v5","Remote Process Execution",
"remote login","cmd shell","courier rpc","kshell: Kerberos remote shell",
"ldaps","LDAP over TLS/SSL","kerberos-adm","ms-sql-s: Microsoft-SQL-Server",
"ms-sql-m: Microsoft-SQL-Monitor");

// а в этом массиве задаем описания для сервисов, обслуживающих на соответствующих портах
// главное чтобы смещение в массиве порта соответствовало смещению в массиве его описания
// то есть если смещение (индекс) порта с номером 23 == 2 (считаем с 0), значит описание
// для этого порта должно быть расположено так же с индексом 2 в массиве описаний.



$log_path = "pscan.log";
$who = $HTTP_SERVER_VARS['REMOTE_ADDR'];
// объявляем переменные для лога. как это продвинутый сканер и без лога? ;)
// в лог будем писать все, даже адрес того кто сканит. мы же любопытные ;)

$err_path = "pscan.err";

// определяем колличество заданых портов-описаний, далее нам это пригодиться в циклах

$cnt=0; //счетчик

$timeout = 10; // таймаут для инициализации сокета, максимум - 15

if($timeout>15) // а тут можете изменить максимум 8)
$timeout=15;
$chost = strip_tags($_POST['ip']); //загоняем сюда значение параметра hostname,
if($chost==""){ // если запустили наш скрипт без параметра $hostname - громко ругаемся
echo "необходимо задать ip-адрес или имя хоста!";
exit;
}

$ch = $chost[0];
$new_chost="";

@
$LOGF = fopen($log_path, "a");
if(
$LOGF){ // если файл открыт успешно
@ flock($LOGF, 2);
@ 
fwrite($LOGF, "================================================================n");
if( 
$ITS_FUCKING_LAMOZ == 1 )
@ 
fwrite($LOGF, "[!!!] ".date('H:i:s Y-m-d')." :>>> ".$HTTP_SERVER_VARS['REMOTE_ADDR']." scaned $chostn");
else
@ 
fwrite($LOGF, date('H:i:s Y-m-d')." :>>> ".$HTTP_SERVER_VARS['REMOTE_ADDR']." scaned $chostn");
@ 
fwrite($LOGF, "================================================================n");
}
// ну а это шапка лога, тоесть дата, айпишник, сканируемый хост...

else{ // если возникла ошибка при логировании - пишем в файл ошибок

@$ERRF = fopen($err_path, "a");

if(
$ERRF){
@ 
flock($ERRF, 2);
@ 
fwrite($ERF, "[date('H:i:s Y-m-d')] невозможно залогировать $whon");
@ 
flock($ERRF, 3);
@ 
rewind($ERRF);
@ 
fclose($ERRF);
}
}
// 

$port = 0;
$pcnt = count($portz);
$dcnt = count($descr);
$ccnt = 0;
$errno = 0;
$errstr = "no errorZ";

if( (
$pcnt==0) || ($dcnt==0) ){
echo 
"список портов не пустой. всем на выход.<br>n"; 
exit;
}

if(
$pcnt!=$dcnt){
if(
$pcnt>$dcnt)
$ccnt=$dcnt;
else
$ccnt=$pcnt; 
}
else
$ccnt=$pcnt;
// если количество портов и количество описаний разные - обрезаем до равного


echo "сканируем ".$chost.".....<br><table>";

echo 
str_repeat(" ", 256); 
for(
$i=0; $i<$ccnt; $i++){
if(!
$timeout)
@
$usenet_handle = fsockopen($chost, (int)$portz[$i]);
else
@
$usenet_handle = fsockopen($chost, (int)$portz[$i], &$errno, &$errstr, $timeout);

if(!
$usenet_handle)

printf('

<div align="center">refused</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
</tr>' 
, $chost, $portz[$i], $descr[$i], $errstr
);
else{
@ 
fwrite($LOGF, $chost."t".$portz[$i]."t".$descr[$i]."t".$errstr."n");
printf('

<div align="center">соединен</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
</tr>' 
, $chost, $portz[$i], $descr[$i], "no err0rZ"
);
} 
// end else

flush();

} 
// end for

@ fwrite($LOGF, "nn");
@ 
flock($LOGF, 3);
@ 
rewind($LOGF);
@ 
fclose($LOGF);

unset(
$chost);
unset(
$new_chost);
unset(
$timeout);
unset(
$port);
unset(
$pcnt);
unset(
$dcnt);
unset(
$ccnt);
unset(
$errno);
unset(
$errstr);
?>
но на перле лучше:
Код:
#!/usr/bin/perl -w
 
 # PortMap by nerezus
 # The Artistic License
 # ICQ 547097
 #
 # A tool for scan ip range
 
 use strict;
 use Socket;
 
 if (@ARGV<2) {print "Usage: portmap.pl from_host(ip) to_host(ip) [portfile.txt(ports via [space])]\n";exit(0);}
 my $fremote=shift||'127.0.0.1';
 my $tremote=shift||'127.0.0.1';
 my $portfile=shift;
 my $ports;
 if ($portfile) {open (PF, $portfile); $ports=<PF>; close(PF);}
    else {$ports="21 80";}
 my @ports=split(/ /, $ports);
 my @flist=split(/\./, $fremote);
 my @tlist=split(/\./, $tremote);
 my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
 my $tip=$tlist[0]*256*256*256+$tlist[1]*256*256+$tlist[2]*256+$tlist[3];
 
 for (my $i=$fip; $i<=$tip; $i++) {
 	my $tmp=$i;
 	my $d1=int($tmp / (256*256*256)); $tmp=$tmp-$d1*(256*256*256);
 	my $d2=int($tmp / (256*256)); $tmp=$tmp-$d2*(256*256);
 	my $d3=int($tmp / 256); $tmp=$tmp-$d3*256;
 	my $d4=$tmp;
 	my $ip="$d1.$d2.$d3.$d4";
 	my $host=gethostbyname($ip);
 	foreach my $port (@ports){
 			my $dest=sockaddr_in($port, $host);
 			socket (S, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 			if (connect(S, $dest)) {print "[".scalar(localtime)."] $ip:$port OK\n";}
 #			   else {print "[".scalar(localtime)."] $ip:$port ERR\n";}
 			close S;
 			}
 }
 
Ответить с цитированием

  #13294  
Старый 12.11.2009, 01:19
Lucky0929
Banned
Регистрация: 03.10.2009
Сообщений: 12
С нами: 8739156

Репутация: 37
По умолчанию

дам 30$ максимум 40$ за скрипт для контакта
добавления в акки которые в текстовом доке, приложения ( желательно с антикапчей)
 
Ответить с цитированием

  #13295  
Старый 12.11.2009, 19:44
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
С нами: 11278406

Репутация: 818


По умолчанию

Такой вопрос возник, сижу уже больше часа, пытаюсь впоймать на вкантакте капчу при авторизации, но что-то немогу увидеть сообщение о вводе капчи, хотя оно есть.
Вот функция для авторизации:

PHP код:
function vk_login($login,$pass,$proxy='')
{
$login = urlencode($login);
$pass = urlencode($pass);


$ch = curl_init('http://login.vk.com/?act=login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/');

if(!empty(
$proxy))
curl_setopt($ch, CURLOPT_PROXY, $proxy);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=$login&pass=$pass&expire=&vk=");
$res = curl_exec($ch);

if(
preg_match('#name=\'s\' id=\'s\' value=\'(.*)\'#',$res,$s))
    {
        echo 
urldecode($login)." Успешно авторизован.\r\n";
        return 
$s[1];
    }
else 
return 
false;
} 
 
Ответить с цитированием

  #13296  
Старый 12.11.2009, 19:45
Alpha][
Познающий
Регистрация: 19.10.2007
Сообщений: 72
С нами: 9768957

Репутация: 14
По умолчанию

при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
 
Ответить с цитированием

  #13297  
Старый 12.11.2009, 19:49
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
С нами: 11278406

Репутация: 818


По умолчанию

error_reporting(0);
или or die('mess');
 
Ответить с цитированием

  #13298  
Старый 12.11.2009, 19:50
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

Цитата:
Сообщение от Alpha][  
при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
ini_set("display_errors","0");
 
Ответить с цитированием

  #13299  
Старый 12.11.2009, 20:05
Alpha][
Познающий
Регистрация: 19.10.2007
Сообщений: 72
С нами: 9768957

Репутация: 14
По умолчанию

это , я так понимаю, глобально ошибки отключит , а можно как-нибудь конкретно эту ошибку отключить ?
 
Ответить с цитированием

  #13300  
Старый 12.11.2009, 20:38
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

PHP код:
<?php 
if (getimagesize('123.jpg')) echo "Ok";
else echo 
"Xatcker detected";
?>
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.