DDNS更新 -Genkikko Server DDNS-

_EOH_; /************************************************************************************************* POSTデータが無かったら入力フォーム表示。 ・どれか1つでも欠けてたら入力フォーム ・どれか1つでも送信されてたら欠けてる分の警告 ・IPアドレスがPOSTで送られてなかったら、相手のアドレスを ***************************************************************************************************/ if(!($username && $password && $ipaddress && $subdomain && $domain)){ if($username || $password || $ipaddress || $subdomain || $domain){ if(!$username){ $msg .= "User IDが入力されていません。
"; } if(!$password){ $msg .= "Passwordが入力されていません。
"; } if(!$ipaddress){ $msg .= "IP addressが入力されていません。
"; } if(!$subdomain){ $msg .= "Subdomainが入力されていません。
"; } if(!$domain){ $msg .= "Domainが選択されていません。
"; } echo "$msg"; } if(!$ipaddress){ $ipaddress = $_SERVER['REMOTE_ADDR']; } echo <<
User ID :
Password :
IP address :
Subdomain :
Domain :
EOF; /************************************************************************************************* POSTデータが揃ってたら処理。 ・データベースに登録されたデータと照合。 ***************************************************************************************************/ }else{ if($username && $ipaddress && $subdomain && $domain){ $table = str_replace(".","_",$domain); $table = str_replace("-","_",$table); $cn = pg_connect("host=????.hibi port=???? dbname=???? user=????"); $rs = pg_query("select * from $table where subdomain='$subdomain'"); $item = pg_fetch_array($rs); pg_close($cn); if($item){ if(md5($password) != $item['password']){ echo "Invalid Password."; die(); }elseif($username != $item['id']){ echo "Invalid Username."; die(); }else{ $dat[0] = "update delete $subdomain.$domain\n"; $dat[1] = "update add $subdomain.$domain 300 A $ipaddress\n"; $dat[2] = "\n"; $update_file = "./temporary/{$$array[3]}.txt"; touch($update_file); $fp = fopen($update_file,'w'); if($item['current_ip'] == "0.0.0.0"){ $i = 1; }else{ $i = 0; } for(;$dat[$i];$i++){ fputs($fp,$dat[$i]); } fclose($fp); exec("nsupdate -k /var/named/Knamed.+???+???.private $update_file",$output,$status); unlink($update_file); echo "Updated."; $timestamp = date('Y-m-d H:i:s'); $cn = pg_connect("host=????.hibi port=???? dbname=???? user=????"); $rs = pg_query("update $table set current_ip='$ipaddress' where subdomain='$subdomain'"); $rs = pg_query("update $table set update_time='$timestamp' where subdomain='$subdomain'"); pg_close($cn); } }else{ echo "Invalid login"; } } } echo "
\nもどる\n"; echo "\n"; ?>