Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

11.11.2009, 21:40
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 138
Провел на форуме: 817404
Репутация:
82
|
|
Как посредством php прочекать у пределёного адреса порт, тоесть просто проверить можно ли подключиться, порт не 80 а типа 23,RDP, и чёнть вроде того. Если ешё можно то чтобы был таймаут. Зарание благодарю.
|
|
|

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

11.11.2009, 22:39
|
|
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме: 444589
Репутация:
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 <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;
}
}
|
|
|

12.11.2009, 01:19
|
|
Banned
Регистрация: 03.10.2009
Сообщений: 12
Провел на форуме: 205083
Репутация:
37
|
|
дам 30$ максимум 40$ за скрипт для контакта
добавления в акки которые в текстовом доке, приложения ( желательно с антикапчей)
|
|
|

12.11.2009, 19:44
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
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;
}
|
|
|

12.11.2009, 19:45
|
|
Познающий
Регистрация: 19.10.2007
Сообщений: 72
Провел на форуме: 255436
Репутация:
14
|
|
при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
|
|
|

12.11.2009, 19:49
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
error_reporting(0);
или or die('mess');
|
|
|

12.11.2009, 19:50
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Сообщение от Alpha][
при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
ini_set("display_errors","0");
|
|
|

12.11.2009, 20:05
|
|
Познающий
Регистрация: 19.10.2007
Сообщений: 72
Провел на форуме: 255436
Репутация:
14
|
|
это , я так понимаю, глобально ошибки отключит , а можно как-нибудь конкретно эту ошибку отключить ?
|
|
|

12.11.2009, 20:38
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
PHP код:
<?php
if (getimagesize('123.jpg')) echo "Ok";
else echo "Xatcker detected";
?>
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|