Last active 1734276330

index.php Raw
1<?php
2
3 $myip = null;
4 $hostname = null;
5 $type = null;
6 $user = null;
7 $password = null;
8 $myzone = 'example.com';
9 $myserver = 'nameserver.example.com';
10
11 $AUTH_MAP = array(
12 "foo.$myzone" => array( 'user' => 'bar', 'password' => 'mysecret', 'ipv6' => false ),
13 );
14
15 if ( isset($_GET['hostname']) ) {
16 if ( isset($AUTH_MAP[$_GET['hostname']]) ) {
17 $hostname = $_GET['hostname'];
18 } else {
19 echo "nohost\n";
20 exit;
21 }
22 } else {
23 echo "911\n";
24 exit;
25 }
26
27 if ( isset($_GET['myip']) && filter_var($_GET['myip'], FILTER_VALIDATE_IP) ) {
28 $myip = $_GET['myip'];
29 } else {
30 $myip = $_SERVER['REMOTE_ADDR'];
31 }
32
33 if ( $AUTH_MAP[$hostname]['ipv6'] && filter_var($myip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
34 $type = 'AAAA';
35 } elseif ( filter_var($myip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
36 $type = 'A';
37 } else {
38 echo "911\n";
39 exit;
40 }
41
42 if ( isset($_SERVER['PHP_AUTH_USER']) ) {
43 $user = $_SERVER['PHP_AUTH_USER'];
44 } else {
45 echo "badauth\n";
46 exit;
47 }
48
49 if ( isset($_SERVER['PHP_AUTH_PW']) ) {
50 $password = $_SERVER['PHP_AUTH_PW'];
51 } else {
52 echo "badauth\n";
53 exit;
54 }
55
56 if ( ($AUTH_MAP[$hostname]['user'] == $user) && ($AUTH_MAP[$hostname]['password'] == $password) ) {
57 shell_exec("/usr/bin/nsupdate -k /www/Kexample.com.+247+89651.private <<EOF
58server $myserver
59zone $myzone
60update delete $hostname. $type
61update add $hostname. 30 $type $myip
62send
63EOF
64");
65 echo "good $myip\n";
66 } else {
67 echo "badauth\n";
68 exit;
69 }
70
71 if ( isset($_GET['debug']) ) {
72 echo "user: $user, password: $password, hostname: $hostname, myip: $myip, type: $type\n";
73 }
74
75?>