分类目录归档:Windows相关

net::smtp with net::socks

use Net::SMTP;
use Net::SOCKS;
my $socks = new Net::SOCKS(socks_addr=>$shost,socks_port=>$sport, protocol_version=>5) or die $!; 
my $socksfd = $socks->connect(peer_addr=>$smtp_server,peer_port=>25);
if(!$socksfd){
    die "Connection to SOCKS failed";
}
my $smtp = Net::SMTP->new_from_fd($socksfd->fileno, 'r+' ) or die $!;

#HACK: there is "220 host.domain.net" line we must read otherwise Net::SMTP would not work!
$smtp->getline();

$smtp->hello("localhost") or die $smtp->message();
#from here Net::SMTP business as usual...

 

通过坐标获取周边地址信息

首先你要在http://lbs.qq.com/webservice_v1/index.html这里注册一个号,并获取一个KEY

通过下面程序,你就能获取到周边的地址信息了

<?php
function httpGet($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_TIMEOUT, 500);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_URL, $url);

    $res = curl_exec($curl);
    curl_close($curl);

    return $res;
}
$x=$_GET['x'];
$y=$_GET['y'];
$key='DBBBZ-M24RO-*-SVTN3-*-5MBN4'; # 你注册的KEY
$url="http://apis.map.qq.com/ws/geocoder/v1/?location={$x},{$y}&key={$key}&get_poi=1&coord_type=1&parameter={%22poi_num%22:20}";
$data=json_decode(httpGet($url));
//print_r($data);
$addr=$data->result;
?>
<!DOCTYPE html>
<html>
    <head>
        <title>选择</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

    </head>
    <body>
        <div>
        <select >
        <option><?php echo $addr->formatted_addresses->recommend?>[默认]</option>
        <?php foreach ($addr->pois as $li ){ ?>
            <option><?php echo $li->title ?></option>
        <?php } ?>
        </select>
        </div>
    </body>
</html>

效果如下

1

配置rsync windows 客户端

有时候,不得不把linux的东西同步到window做备份,所以在linux装好服务器端好,那得配置一下window客户端。

1、下载https://www.itefix.no/cwrsync/

https://www.itefix.net/content/cwrsync-free-edition

2、解压

1

3、在当前目录新建两个文件,

a) rsync.pass     这个文件是保存密码的

b)rsync.bat 输入下面的内容

rsync.exe -azrtl  --port=54321 --ignore-errors --progress --delete web@my.host.com::web /cygdrive/e/wwwroot/ --password-file=rsync.pass
/cygdrive/e/wwwroot/  表示  E:\wwwroot

4、调试时,双击rsync.bat 会一闪而过,建议先打开cmd 然后cd到这个目录,再执行这个 rsync.bat这个文件,即可以看到输出了。

 

 

优秀的PHP字符加密与解密函数

    function encrypt($data, $key){
        return base64_encode(
            mcrypt_encrypt(
                MCRYPT_RIJNDAEL_128,
                $key,
                $data,
                MCRYPT_MODE_CBC,
                "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
            )
        );
        }
    function decrypt($data, $key){
        $decode = base64_decode($data);
        return mcrypt_decrypt(
            MCRYPT_RIJNDAEL_128,
            $key,
            $decode,
            MCRYPT_MODE_CBC,
            "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
        );
    }

 

PHP nowdoc HereDoc 使用注意

多次使用 php nowdoc HereDoc 插入大量Hmtl都没有成功,一样提示语法有问题,事实上PHP手册注明是这样写的,实在很奇怪 ,最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说EOF前面不能有空格,而为了代码缩进,正好产生了这样的问题。

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;//EOD一定要靠近前面,不能有空格,同时不要漏掉结束符分号;

 

Virtualbox 主机访问子系统网络设置方法

通过virtualbox安装系统,一般时候,选择“桥接模式”,在子系统中设置或者通过DHCP获取Ip就可以访问和供局域网使用,但是我的网络里做了IP/MAC绑定,意味着如果用  桥接意味着用不了,而我的需求只是用来测试,只要 子系统可以访问互联网及宿主系统可以访问子系统即可。其实方法很简单只需要两步:1、在网卡1设成“HOST-ONLY”模式。2、网卡2设成NAT模式即可。

1

2