X

由于无法提供服务器的高昂费用,博客即将迁移到github pages...

点击右上的X可以临时关闭此框并阻止跳转^_^

现在带您过去 秒后跳转...

利用PHP实现QQ的登陆和发送消息

    利用CURL抓取3GQQ的网页实现的。
    这里只是简单实现了功能,可以修改代码实现更多可能。
    如:定时发送消息、机器人客服等高级功能。
    展示代码,分两个步骤完成。

    第一步:登录获取sid,有sid是发送消息的前提。

    //发送方QQ账号和密码
    $qq  = '';
    $pwd = '';
    //准备要POST数据
    $data = array(
        'qq'            => $qq,
        'pwd'           => $pwd,
        'bid_code'      => '3GQQ',
        'toQQchat'      => true,
        'login_url'     => 'http://pt.3g.qq.com/s?aid=nLoginnew&q_from=3GQQ',
        'q_from'        => '',
        'modifySKey'    => 0,
        'loginType:'    => 1,
        'aid'           => 'nLoginHandle',
        'i_p_w'         => 'qq|pwd|',
    );
    //开始CURL模拟登录
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'http://pt.3g.qq.com/psw3gqqLogin');
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
    $file = curl_exec($ch);
    curl_close($ch);
    //分析登录是否成功
    preg_match('%sid=(.*?)&%si',$file,$sid);
    $sid = $sid[1];
    if($sid){
        echo '登陆成功!'.$sid;
    }else{
        echo '登陆失败!请检查用户名和密码是否正确!';
        exit();
    }
    

    获取到sid后就可以发送消息了。
    第二步:发送消息,利用上一步获取到的sid。

    $sid='';
    $qq   = "909047801";
    $text = "你好,豆豆!";
    //准备要POST的数据
    $data = array(
        'u'         => $qq,
        'saveUrl'   => 0,
        'do'        => 'send',
        'on'        => 1,
        'aid'       => '发送',
        'msg'       => $text,
    );
    //开始CURL模拟发送
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'http://q16.3g.qq.com/g/s?sid=' . $sid);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
    $file = curl_exec($ch);
    curl_close($ch);
    //分析发送是否成功
    preg_match('%

    (.*?)
    %si',$file,$callback); $callback = $callback[1]; echo $callback;

Mac OS(苹果电脑) 如何清空DNS缓存?

    找不到服务器

    很多时候,因为域名的解析长时间未生效,我们无法通过域名访问刚刚解析的主机,最快的方法就是清空本地DNS缓存。
    我们都知道,在Windows下面,想要清空本地dns缓存只需要执行一条CMD命令:

    ipconfig/flushdns

    但是在使用苹果这样高大上的Mac系统的时候,就得用它独特的命令了。不过,不同的MAC系统版本命令也不一样!
    Tiger或更低版本 Mac OS:

    sudo lookupd -flushcache
    

    Leopard和Snow Leopard:

    sudo dscacheutil -flushcache
    

    而到了Lion、Mountain Lion和Mavericks:

    sudo killall -HUP mDNSResponder
    

    然后是Yosemite:

    sudo discoveryutil mdnsflushcache
    
    最后就到了EI Caption:
    
    sudo dscacheutil -flushcache

    另外,提一下,Linux下通用命令:

    sudo /etc/init.d/dns-clean start
    

安装CentOS7之后win7引导没了,Grub解决

    因为学习linux需要,虚拟机安装又显得太简单,所以在实验室win7电脑上装个windows和linux的双系统,自然采用最新的centos7来试着玩一玩咯!但是没想到装完cnetos7之后,windows进不去了(没有windows的引导),上网查了各种资料,最终确定了修改Grub的配置文件来增加对windows的引导。
    首先我们要登陆Centos,打开Grub的配置文件:

    执行命令:
    vi /boot/grub2/grub.cfg
    

    找到 ### BEGIN /etc/grub.d/30_os-prober ### 在下面添加:

    menuentry "Windows 7 Loader On Dev/sda1" {
         insmod ntfs
         set root=(hd0,1)
         chainloader +1
    }
    

    关键代码:set root=(hd0,1) 其中 hd0 表示硬盘,1 表示C盘 ,因为我这里win7是安装在C盘的,所以是1,如果你不是C盘(第一个分区),那么就要需改成你对应的分区号了。