Сначала необходимо функцией mktime() получить время в секундах в формате UNIX Timestamp, а потом уже эти секунды передавать в функцию getdate(). (с)
Я это и без вашей помощи прекрасно понимаю. А прощу помочь по моей проблеме а не по азам функции date()
Как посредством php прочекать у пределёного адреса порт, тоесть просто проверить можно ли подключиться, порт не 80 а типа 23,RDP, и чёнть вроде того. Если ешё можно то чтобы был таймаут. Зарание благодарю.
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); ?> но на перле лучше: Code: #!/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; } }
дам 30$ максимум 40$ за скрипт для контакта добавления в акки которые в текстовом доке, приложения ( желательно с антикапчей)
Такой вопрос возник, сижу уже больше часа, пытаюсь впоймать на вкантакте капчу при авторизации, но что-то немогу увидеть сообщение о вводе капчи, хотя оно есть. Вот функция для авторизации: 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; }
при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
Alpha][, если у тебя выскакивает NOTICE то попробуй его отключить в php.ini таким образом error_reporting = E_ALL & ~E_NOTICE
Какой то хацкер заспамил весь вконтакт ссылкой на какой то трой. Чем вскрыть трой или как его переделать под себя??? или хотябы узнать куда он шлёт инфу