切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
php 控制台下的 $argc && $argv[复制链接]
发表于 2012-12-16 23:45:39 | 显示全部楼层 |!read_mode!
在控制台模式下  $argc 和 $argv 是 $argc 代表的是包括脚本名称在内的参数的个数  而argv则是保存了这些参数的内容

例如: php test.php argv1 argv2

那么 $argc=3
$argv=Array
(
    [0] => test.php
    [1] => argv1
    [3] => argv2
  
)

下面的程序是一个简单的 控制台下端口扫描器的程序

<?php
if($argc==2){
  $input=$argv[1];
  if(preg_match('/\w+\.\w+\.\w+/',$input,$arr)){
   $host=$arr[0];
   $ip=gethostbyname($host);
   //port and service message
   $port=array(21,23,25,53,79,80,110,135,137,138,139,143,443,445,1433,3306,3389);
   $msg=array('Ftp','Telnet','Smtp','DNS','Finger','Http','Pop3','Location Service','Netbios-NS','Netbios-DGM','Netbios-SSN','IMAP','Https','Microsoft-DS','MSSQL','MYSQL','Terminal Services');
   print("The remote host ip is $ip\n\n");
   for($i=0;$i<count($port);$i++){
    $handle=@fsockopen($ip,$port[$i],$errno,$error,1);
    if($handle){
     printf("Port %d is open and service is %s\n",$port[$i],$msg[$i]);
    }else {
     print("Port $port[$i] is closed!!!!\n");
    }
   }
   
  }else {
   print "不是一个有效的URL";
   exit;
  }
}else {
  print("需要一个参数");
  exit;
}
发表于 2012-12-18 00:12:43 | 显示全部楼层
嗯  很好的思路 谢谢分享




附件: 你需要登录才可以下载或查看附件。没有帐号?加入Team
操千曲而后晓声,观千剑而后识器。

代码区

GMT+8, 2020-9-25 07:05

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部