姜丝儿的祖屋

存档 -- 1月, 2009

reader中的分享- January 17, 2009

admin 发表于: 1月 17th, 2009 | 阅读: | 评论数: (0)

姜丝儿在Twitter上的唠叨 on 2009-01-16

admin 发表于: 1月 16th, 2009 | 阅读: | 评论数: (0)

Powered by Twitter Tools.

利用dnspod的API做动态域名解析

admin 发表于: 1月 16th, 2009 | 阅读: | 评论数: (0)

最近做一个小项目,把服务器放朋友公司了,朋友公司网络是ADSL的,服务器是linux的,首先在路由器那做了DMZ主机,将内外网ip设置到那台服务器上,通过外网ip可以直接访问。

然后写了一个小程序,判断如果本地ip和dnspod中设置的不同的话,就修改dnspod的记录。写的很烂。大家随便看看。

本来dnspod返回的数据可以是xml或者json的,懒的用xml解析器了,json挺好,写的时候忘记怎么返回成一个数组了,就直接用了match..

 

<?php
//利用http://www.dnspod.com/API/做动态域名解析

function postData($url, $data) {
        $data = http_build_query($data);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        // curl_setopt($ch, CURLOPT_HEADER, 1);
        // curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

        $response = curl_exec($ch);
        curl_close($ch);

        return $response;
}

$data = array(‘login_email’             => user@gmail.com’,
        ‘login_password’        => ‘password’,
        ‘format’                        => ‘xml’,
        ‘domain_id’                     => ‘ zzzzzz’);  //(首先先用domian.list方法获得domian id 吧,因为没有做通用的版本,所以这里就直接写死了。 zzzzzz为一组数字
$return_info = postData("http://www.dnspod.com/API/Record.List", $data);
preg_match("/value>(.*)<\/v/i",$return_info, $matches);
$ip_remote = $matches[1];   //获得dnspod中当前ip

$s = `curl http://www.showmyip.com/xml/`;
preg_match("/ip>(.*)<\/ip/i",$s, $matches2);
$ip_local = $matches2[1];  //获得本机当前ip
if($ip_remote != $ip_local)  //如果两个ip不同,就修改记录


        $new_$data = array(‘login_email’        => user@gmail.com’,
        ‘login_password’        => ‘password’,

                ‘format’                        => ‘xml’,
                ‘domain_id’                     => ‘zzzzzz’,  
                ‘record_id’                     => ‘xxxxxxx’,    
                ‘sub_domain’            => ‘www’,
                ‘record_type’           => ’1′,
                ‘record_line’           => ’1′,
                ‘value’                         => $ip_local,
                ‘mx’                            => ’10′,
                ‘ttl’                           => ’3600′);
        $return_info = postData("http://www.dnspod.com/API/Record.Modify", $new_data);
        file_put_contents(‘dnspod.log’,$return_info);
}
?>   

reader中的分享- January 16, 2009

admin 发表于: 1月 16th, 2009 | 阅读: | 评论数: (0)

姜丝儿在Twitter上的唠叨 on 2009-01-12

admin 发表于: 1月 12th, 2009 | 阅读: | 评论数: (0)

Powered by Twitter Tools.

姜丝儿在Twitter上的唠叨 on 2009-01-08

admin 发表于: 1月 8th, 2009 | 阅读: | 评论数: (0)

Powered by Twitter Tools.

姜丝儿在Twitter上的唠叨 on 2009-01-07

admin 发表于: 1月 7th, 2009 | 阅读: | 评论数: (0)

Powered by Twitter Tools.

存档 -- 1月, 2009