分类 默认分类 下的文章

BAT批处理批量查询域名,从文本中找出已经泛解析的域名

用法:把下列代码保存为bat文件。在同一目录下把顶级域名导出到txt,一行一个域名,支持多个txt文件,检测完成后将自动生成结果到result.html

@echo off&&title %~nx0
setlocal ENABLEDELAYEDEXPANSION
REM @Author Hackkey <hackkey@qq.com>

REM 保存已找到解析结果的文件
set result=%~dp0result.html
REM 保存未找到解析结果的文件
set nonfile=%~dp0non.log
REM 查询结果临时文件
set tmpfile=%~dp0tmp.log
REM 要查询的子域名或随机域名,倘若查询泛解析,可以随便填一个字符串
set subdomain=abc
REM 解析成功返回的特征字符串
set flag=名称: 



REM 删除结果文件
if exist %result% del /f /q %result%
if exist %nonfile%del /f /q %nonfile%


if exist %~dp0header.tpl type %~dp0header.tpl>>%result%
REM  输出表格头部
echo ^<style type="text/css"^>td,th{border: 1px solid #000;}^</style^>^<table cellspacing="0" cellpadding="4"^> ^<tr^>      ^<th^>域名^</th^>     ^<th^>响应名称^</th^>       ^<th^>响应答案/IP^</th^>    ^</tr^>>%result%
for /F "usebackq" %%i IN (`dir /b *.txt`) do (
set a=%%i
for /f "usebackq" %%l IN (`type !a!`) do (
 call :checkdomain %%l
 REM goto :eof
)
)
REM  输出表格尾部
echo ^</table^>>>%result%

:checkdomain
nslookup -qt=a %subdomain%.%1 114.114.114.114>%tmpfile% 
(type %tmpfile%|find /I "%flag%")&&(
set domain=%1
call :getfieldtwo name name 
call :getfieldtwo value value
REM echo name here !name!
REM echo value here !value!
>>%result% echo ^<tr^>^<td^>%1^</td^>^<td^>!name!^</td^>^<td^>!value!^</td^>^</tr^>
)||(echo %1>>%nonfile%)
exit /b
goto :eof


:getfieldtwo
if "%1"=="name" (set field=名称) else set field=Address
for /f "usebackq skip=3 tokens=1,2 delims= " %%t in (`type %tmpfile%`) do (
echo %%t %%u|find "%field%"&&set %2=%%u
)
exit /b
goto :eof

REM nslookup -qt=a a.jr5556.com 114.114.114.114|find "答案" && echo success
REM echo %1 %name% %value%>>%result%
pause

domain_scripts.jpg

fanjiexi.jpg


扫描二维码,在手机上阅读!

shell 生成指定范围随机数与随机字符串

shell 生成指定范围随机数与随机字符串

1.使用系统的 $RANDOM 变量

fdipzone@ubuntu:~$ echo $RANDOM  
17617  

$RANDOM 的范围是 [0, 32767]
如需要生成超过32767的随机数,可以用以下方法实现。
例:生成400000~500000的随机数

#!/bin/bash  
  
function rand(){  
    min=$1  
    max=$(($2-$min+1))  
    num=$(($RANDOM+1000000000)) #增加一个10位的数再求余  
    echo $(($num%$max+$min))  
}  
  
rnd=$(rand 400000 500000)  
echo $rnd  
  
exit 0  

2.使用date +%s%N
例:生成1~50的随机数

#!/bin/bash  
  
function rand(){  
    min=$1  
    max=$(($2-$min+1))  
    num=$(date +%s%N)  
    echo $(($num%$max+$min))  
}  
  
rnd=$(rand 1 50)  
echo $rnd  
  
exit 0  

3.使用/dev/random 和 /dev/urandom
/dev/random 存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待。
/dev/urandom 非阻塞随机数发生器,读取操作不会产生阻塞。
例:使用/dev/urandom生成100~500的随机数,使用urandom避免阻塞。

#!/bin/bash  
  
function rand(){  
    min=$1  
    max=$(($2-$min+1))  
    num=$(cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}')  
    echo $(($num%$max+$min))  
}  
  
rnd=$(rand 100 500)  
echo $rnd  
  
exit 0  

4.使用linux uuid
uuid 全称是通用唯一识别码,格式包含32个16进制数字,以'-'连接号分为5段。形式为8-4-4-4-12 的32个字符。

fdipzone@ubuntu:~/shell$ cat /proc/sys/kernel/random/uuid  
fd496199-372a-403e-8ec9-bf4c52cbd9cd  
例:使用linux uuid 生成100~500随机数

#!/bin/bash  
  
function rand(){  
    min=$1  
    max=$(($2-$min+1))  
    num=$(cat /proc/sys/kernel/random/uuid | cksum | awk -F ' ' '{print $1}')  
    echo $(($num%$max+$min))  
}  
  
rnd=$(rand 100 500)  
echo $rnd  
  
exit 0  

5.生成随机字符串
例:生成10位随机字符串
#使用date 生成随机字符串

date +%s%N | md5sum | head -c 10  

#使用 /dev/urandom 生成随机字符串

cat /dev/urandom | head -n 10 | md5sum | head -c 10  

扫描二维码,在手机上阅读!

新文章测试

<?php
/**
 *  base.php PHPCMS框架入口文件
 *
 * @copyright           (C) 2005-2010 PHPCMS
 * @license             http://www.phpcms.cn/license/
 * @lastmodify          2010-6-7
 */
define('IN_PHPCMS', true);

//PHPCMS框架路径
define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);

if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);

//缓存文件夹地址
define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);
//主机协议
define('SITE_PROTOCOL', isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://');
//当前访问的主机名
define('SITE_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''));
//来源
define('HTTP_REFERER', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');

//系统开始时间
define('SYS_START_TIME', microtime());

//加载公用函数库
pc_base::load_sys_func('global');
pc_base::load_sys_func('extention');
pc_base::auto_load_func();

pc_base::load_config('system','errorlog') ? set_error_handler('my_error_handler') : error_reporting(E_ERROR | E_WARNING | E_PARSE);
//设置本地时差
function_exists('date_default_timezone_set') && date_default_timezone_set(pc_base::load_config('system','timezone'));

define('CHARSET' ,pc_base::load_config('system','charset'));
//输出页面字符集
header('Content-type: text/html; charset='.CHARSET);

define('SYS_TIME', time());
//定义网站根路径
define('WEB_PATH',pc_base::load_config('system','web_path'));
//js 路径
define('JS_PATH',pc_base::load_config('system','js_path'));
//css 路径
define('CSS_PATH',pc_base::load_config('system','css_path'));
//img 路径
define('IMG_PATH',pc_base::load_config('system','img_path'));
//动态程序路径
define('APP_PATH',pc_base::load_config('system','app_path'));

//应用静态文件路径
define('PLUGIN_STATICS_PATH',WEB_PATH.'statics/plugin/');

if(pc_base::load_config('system','gzip') && function_exists('ob_gzhandler')) {
    ob_start('ob_gzhandler');
} else {
    ob_start();
}

class pc_base {
    
    /**
     * 初始化应用程序
     */
    public static function creat_app() {
        return self::load_sys_class('application');
    }
    /**
     * 加载系统类方法
     * @param string $classname 类名
     * @param string $path 扩展地址
     * @param intger $initialize 是否初始化
     */
    public static function load_sys_class($classname, $path = '', $initialize = 1) {
            return self::_load_class($classname, $path, $initialize);
    }
    
    /**
     * 加载应用类方法
     * @param string $classname 类名
     * @param string $m 模块
     * @param intger $initialize 是否初始化
     */
    public static function load_app_class($classname, $m = '', $initialize = 1) {
        $m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;
        if (empty($m)) return false;
        return self::_load_class($classname, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'classes', $initialize);
    }
    
    /**
     * 加载数据模型
     * @param string $classname 类名
     */
    public static function load_model($classname) {
        return self::_load_class($classname,'model');
    }
        
    /**
     * 加载类文件函数
     * @param string $classname 类名
     * @param string $path 扩展地址
     * @param intger $initialize 是否初始化
     */
    private static function _load_class($classname, $path = '', $initialize = 1) {
        static $classes = array();
        if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'classes';

        $key = md5($path.$classname);
        if (isset($classes[$key])) {
            if (!empty($classes[$key])) {
                return $classes[$key];
            } else {
                return true;
            }
        }
        if (file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {
            include PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php';
            $name = $classname;
            if ($my_path = self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {
                include $my_path;
                $name = 'MY_'.$classname;
            }
            if ($initialize) {
                $classes[$key] = new $name;
            } else {
                $classes[$key] = true;
            }
            return $classes[$key];
        } else {
            return false;
        }
    }
    
    /**
     * 加载系统的函数库
     * @param string $func 函数库名
     */
    public static function load_sys_func($func) {
        return self::_load_func($func);
    }
    
    /**
     * 自动加载autoload目录下函数库
     * @param string $func 函数库名
     */
    public static function auto_load_func($path='') {
        return self::_auto_load_func($path);
    }
    
    /**
     * 加载应用函数库
     * @param string $func 函数库名
     * @param string $m 模型名
     */
    public static function load_app_func($func, $m = '') {
        $m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;
        if (empty($m)) return false;
        return self::_load_func($func, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'functions');
    }
    
    /**
     * 加载插件类库
     */
    public static function load_plugin_class($classname, $identification = '' ,$initialize = 1) {
        $identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;
        if (empty($identification)) return false;
        return pc_base::load_sys_class($classname, 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'classes', $initialize);
    }
    
    /**
     * 加载插件函数库
     * @param string $func 函数文件名称
     * @param string $identification 插件标识
     */
    public static function load_plugin_func($func,$identification) {
        static $funcs = array();
        $identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;
        if (empty($identification)) return false;
        $path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.$func.'.func.php';
        $key = md5($path);
        if (isset($funcs[$key])) return true;
        if (file_exists(PC_PATH.$path)) {
            include PC_PATH.$path;
        } else {
            $funcs[$key] = false;
            return false;
        }
        $funcs[$key] = true;
        return true;
    }
    
    /**
     * 加载插件数据模型
     * @param string $classname 类名
     */
    public static function load_plugin_model($classname,$identification) {
        $identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;
        $path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'model';
        return self::_load_class($classname,$path);
    }
    
    /**
     * 加载函数库
     * @param string $func 函数库名
     * @param string $path 地址
     */
    private static function _load_func($func, $path = '') {
        static $funcs = array();
        if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions';
        $path .= DIRECTORY_SEPARATOR.$func.'.func.php';
        $key = md5($path);
        if (isset($funcs[$key])) return true;
        if (file_exists(PC_PATH.$path)) {
            include PC_PATH.$path;
        } else {
            $funcs[$key] = false;
            return false;
        }
        $funcs[$key] = true;
        return true;
    }
    
    /**
     * 加载函数库
     * @param string $func 函数库名
     * @param string $path 地址
     */
    private static function _auto_load_func($path = '') {
        if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.'autoload';
        $path .= DIRECTORY_SEPARATOR.'*.func.php';
        $auto_funcs = glob(PC_PATH.DIRECTORY_SEPARATOR.$path);
        if(!empty($auto_funcs) && is_array($auto_funcs)) {
            foreach($auto_funcs as $func_path) {
                include $func_path;
            }
        }
    }
    /**
     * 是否有自己的扩展文件
     * @param string $filepath 路径
     */
    public static function my_path($filepath) {
        $path = pathinfo($filepath);
        if (file_exists($path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'])) {
            return $path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'];
        } else {
            return false;
        }
    }
    
    /**
     * 加载配置文件
     * @param string $file 配置文件
     * @param string $key  要获取的配置荐
     * @param string $default  默认配置。当获取配置项目失败时该值发生作用。
     * @param boolean $reload 强制重新加载。
     */
    public static function load_config($file, $key = '', $default = '', $reload = false) {
        static $configs = array();
        if (!$reload && isset($configs[$file])) {
            if (empty($key)) {
                return $configs[$file];
            } elseif (isset($configs[$file][$key])) {
                return $configs[$file][$key];
            } else {
                return $default;
            }
        }
        $path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';
        if (file_exists($path)) {
            $configs[$file] = include $path;
        }
        if (empty($key)) {
            return $configs[$file];
        } elseif (isset($configs[$file][$key])) {
            return $configs[$file][$key];
        } else {
            return $default;
        }
    }
}

扫描二维码,在手机上阅读!
Title - Artist
0:00