slitaz-forge annotate ns/web/index.cgi @ rev 675
Add a few more info about play.slitaz.me
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Mar 16 19:57:14 2017 +0100 (2017-03-16) |
parents | 8c2372deec88 |
children | 95605b3559a8 |
rev | line source |
---|---|
pascal@583 | 1 #!/bin/sh |
pascal@583 | 2 |
pascal@583 | 3 # Get parameters with GET, POST and FILE functions |
pascal@583 | 4 . /usr/bin/httpd_helper.sh |
pascal@583 | 5 |
pascal@583 | 6 OWNERFILE=name.users |
pascal@583 | 7 ip="$(GET ip)" |
pascal@583 | 8 [ "$ip" ] || ip=$REMOTE_ADDR |
pascal@583 | 9 name="$(GET name)" |
pascal@583 | 10 name="${name%.by.slitaz.org}" |
pascal@583 | 11 if [ "$name" -a "$REMOTE_USER" ]; then |
pascal@584 | 12 header |
pascal@585 | 13 addip=yes |
pascal@585 | 14 case " $(GET) " in |
pascal@585 | 15 *\ remove\ *|*\ delete\ *|*\ wipe\ *) |
pascal@585 | 16 addip= |
pascal@585 | 17 esac |
pascal@585 | 18 case "$name" in |
pascal@585 | 19 @*) echo "$name not allowed. Abort." |
pascal@585 | 20 exit 1 ;; |
pascal@585 | 21 *\**) base="${name//\*/}" |
pascal@585 | 22 if grep -qs "^[^ ]*${base//./\\.} " $OWNERFILE ; then |
pascal@585 | 23 owner="$(sed "/^[^ ]*${base//./\\.} /!d;s/.* //" $OWNERFILE | uniq | xargs echo)" |
pascal@585 | 24 if [ "$addip" -o "$owner" != "$REMOTE_USER" ]; then |
pascal@585 | 25 echo "$base is already used by $owner. Abort." |
pascal@585 | 26 exit 1 |
pascal@585 | 27 fi |
pascal@585 | 28 fi |
pascal@585 | 29 esac |
pascal@585 | 30 if grep -qs "^$name " $OWNERFILE || grep -qs "^\$name " $OWNERFILE ; then |
pascal@583 | 31 owner="$(sed "/^$name /!d;s/.* //" $OWNERFILE)" |
pascal@585 | 32 [ "$owner" ] || owner="$(sed "/^\$name /!d;s/.* //" $OWNERFILE)" |
pascal@583 | 33 if [ "$owner" != "$REMOTE_USER" ]; then |
pascal@583 | 34 echo "$name is already used by $owner. Abort." |
pascal@583 | 35 exit 1 |
pascal@583 | 36 fi |
pascal@583 | 37 else |
pascal@584 | 38 echo "$name $(date -u) $REMOTE_USER" >> $OWNERFILE |
pascal@583 | 39 fi |
pascal@585 | 40 [ "$addip" ] || sed -i "/^$name /d;/^\$name /d" $OWNERFILE |
pascal@585 | 41 ttl=900 |
pascal@585 | 42 [ "$(GET ttl)" ] && ttl="$(GET ttl)" |
pascal@585 | 43 req="server 127.0.0.1" |
pascal@585 | 44 if [ "$(GET mx)" ]; then |
pascal@583 | 45 mx="$(GET mx)" |
pascal@583 | 46 [ "$mx" ] || mx=$ip |
pascal@583 | 47 req="$req |
pascal@583 | 48 update delete $name.by.slitaz.org MX" |
pascal@583 | 49 [ "$addip" ] && req="$req |
pascal@585 | 50 update add $name.by.slitaz.org $ttl MX 10 $mx" |
pascal@585 | 51 fi |
pascal@585 | 52 type="A" |
pascal@585 | 53 echo "$ip" | grep -q : && type="AAAA" |
pascal@585 | 54 [ "$(GET ns)" ] && type="NS" |
pascal@585 | 55 [ "$(GET txt)" ] && type="TXT" && ip="$(GET txt)" |
pascal@585 | 56 [ "$(GET cname)" ] && type="CNAME" && ip="$(GET cname)" |
pascal@585 | 57 req="$req |
pascal@585 | 58 update delete $name.by.slitaz.org $type" |
pascal@585 | 59 [ "$addip" ] && req="$req |
pascal@585 | 60 update add $name.by.slitaz.org $ttl $type $ip" |
pascal@583 | 61 echo "$req |
pascal@584 | 62 send" | nsupdate 2>&1 |
pascal@583 | 63 else |
pascal@583 | 64 #header "text/html; charset=utf-8" |
pascal@583 | 65 cat <<EOT |
pascal@583 | 66 <!DOCTYPE html> |
pascal@583 | 67 <html xmlns="http://www.w3.org/1999/xhtml"> |
pascal@583 | 68 <head> |
pascal@583 | 69 <title>SliTaz Name Server</title> |
pascal@583 | 70 <meta charset="utf-8" /> |
pascal@583 | 71 <link rel="shortcut icon" href="favicon.ico" /> |
pascal@583 | 72 <link rel="stylesheet" type="text/css" href="style.css" /> |
pascal@583 | 73 <style type="text/css"> |
pascal@583 | 74 #header h1 { |
pascal@583 | 75 margin: 0; |
pascal@583 | 76 padding: 8px 0 0 42px; |
pascal@583 | 77 width: 250px; |
pascal@583 | 78 } |
pascal@583 | 79 #logo { |
pascal@583 | 80 background: url(/images/logo.png) no-repeat left; |
pascal@583 | 81 position: absolute; |
pascal@583 | 82 float: left; |
pascal@583 | 83 left: 0px; |
pascal@583 | 84 top: 0px; |
pascal@583 | 85 width: 40px; |
pascal@583 | 86 height: 40px; |
pascal@583 | 87 } |
pascal@583 | 88 pre { font-size: 100%; } |
pascal@583 | 89 </style> |
pascal@583 | 90 </head> |
pascal@583 | 91 <body> |
pascal@583 | 92 |
pascal@583 | 93 <div id="header"> |
pascal@583 | 94 <div id="logo"></div> |
pascal@583 | 95 <div id="network"> |
pascal@583 | 96 <a href="http://www.slitaz.org/">Home</a> |
pascal@583 | 97 <a href="http://bugs.slitaz.org/">Bugs</a> |
pascal@584 | 98 <a href="http://hg.slitaz.org/?sort=lastchange">Hg</a> |
pascal@583 | 99 <a href="http://forum.slitaz.org/">Forum</a> |
pascal@583 | 100 <a href="http://roadmap.slitaz.org/">Roadmap</a> |
pascal@583 | 101 <a href="http://pizza.slitaz.me/">Pizza</a> |
pascal@583 | 102 <a href="http://tank.slitaz.org/">Tank</a> |
pascal@583 | 103 </div> |
pascal@583 | 104 <h1><a href="./">SliTaz Name Server</a></h1> |
pascal@583 | 105 </div> |
pascal@583 | 106 |
pascal@583 | 107 <!-- Content --> |
pascal@583 | 108 <div id="content"> |
pascal@585 | 109 <h3>Status</h3> |
pascal@585 | 110 <p> |
paul@586 | 111 There are $(wc -l < $OWNERFILE) record(s) and |
paul@586 | 112 $(sed 's/.* //' $OWNERFILE | sort | uniq | wc -l) user(s) |
pascal@585 | 113 in the by.slitaz.org domain.</p> |
pascal@583 | 114 EOT |
pascal@583 | 115 if grep -qs " $REMOTE_USER$" $OWNERFILE; then |
pascal@583 | 116 cat <<EOT |
pascal@585 | 117 $REMOTE_USER has $(grep " $REMOTE_USER$" $OWNERFILE | wc -l) names: |
pascal@583 | 118 <pre> |
pascal@583 | 119 EOT |
pascal@583 | 120 for i in $(grep " $REMOTE_USER$" $OWNERFILE | sed 's/ .*//'); do |
pascal@584 | 121 dig @127.0.0.1 $i.by.slitaz.org ANY | grep ^$i |
pascal@583 | 122 done |
pascal@583 | 123 cat <<EOT |
pascal@583 | 124 </pre> |
pascal@583 | 125 |
pascal@583 | 126 Your current IP address is $REMOTE_ADDR |
pascal@583 | 127 EOT |
pascal@583 | 128 fi |
pascal@583 | 129 cat <<EOT |
pascal@583 | 130 <h3>Usage</h3> |
pascal@583 | 131 <pre> |
pascal@585 | 132 $ wget -O - "http://user:pass@ns.slitaz.org/?name=<name>[&ip=<ip1>][&mx[=<ip2>]]" |
pascal@585 | 133 $ wget -O - "http://user:pass@ns.slitaz.org/?name=<name>&remove[&mx]" |
pascal@585 | 134 </pre> |
pascal@585 | 135 <pre> |
pascal@585 | 136 $ wget -O - "http://user:pass@ns.slitaz.org/?name=<name>&ns=<ip>" |
pascal@585 | 137 $ wget -O - "http://user:pass@ns.slitaz.org/?name=<name>&ns&remove" |
pascal@585 | 138 </pre> |
pascal@585 | 139 <pre> |
pascal@585 | 140 $ wget -O - "http://user:pass@ns.slitaz.org/?name=<name>&{txt|cname}=<text>" |
pascal@585 | 141 $ wget -O - "http://user:pass@ns.slitaz.org/?name=<name>&{txt|cname}&remove" |
pascal@583 | 142 </pre> |
pascal@583 | 143 <h3>Examples</h3> |
pascal@583 | 144 <ul> |
pascal@583 | 145 <li> |
pascal@583 | 146 Update myblog.by.slitaz.org with my current IP address. |
pascal@583 | 147 <pre> |
pascal@585 | 148 $ wget -O - "http://user:pass@ns.slitaz.org/?name=myblog" |
pascal@583 | 149 </pre> |
pascal@583 | 150 </li> |
pascal@583 | 151 <li> |
pascal@583 | 152 Update myblog.by.slitaz.org with the IP address 1.2.3.4. |
pascal@583 | 153 <pre> |
pascal@585 | 154 $ wget -O - "http://user:pass@ns.slitaz.org/?name=myblog&ip=1.2.3.4" |
pascal@585 | 155 </pre> |
pascal@585 | 156 </li> |
pascal@585 | 157 <li> |
pascal@585 | 158 Update myblog.by.slitaz.org with the IPv6 address 1:2:3::4:5 |
pascal@585 | 159 <pre> |
pascal@585 | 160 $ wget -O - "http://user:pass@ns.slitaz.org/?name=myblog&ip=1:2:3::4:5" |
pascal@583 | 161 </pre> |
pascal@583 | 162 </li> |
pascal@583 | 163 <li> |
pascal@583 | 164 Remove myblog.by.slitaz.org from the name server. |
pascal@583 | 165 <pre> |
pascal@585 | 166 $ wget -O - "http://user:pass@ns.slitaz.org/?name=myblog&remove" |
pascal@583 | 167 </pre> |
pascal@583 | 168 </li> |
pascal@583 | 169 <li> |
paul@586 | 170 Update myserver.by.slitaz.org with my current IP address and declare a mail server. |
pascal@583 | 171 <pre> |
pascal@585 | 172 $ wget -O - "http://user:pass@ns.slitaz.org/?name=myserver&mx" |
pascal@583 | 173 </pre> |
pascal@583 | 174 </li> |
pascal@583 | 175 <li> |
paul@586 | 176 Update myserver.by.slitaz.org with my current IP address and use a mail server at 1.2.3.4. |
pascal@583 | 177 <pre> |
pascal@585 | 178 $ wget -O - "http://user:pass@ns.slitaz.org/?name=myserver&mx=1.2.3.4" |
pascal@585 | 179 </pre> |
pascal@585 | 180 </pre> |
pascal@585 | 181 </li> |
pascal@585 | 182 <li> |
paul@586 | 183 The Addams family use a name server at 1.2.3.4. |
pascal@585 | 184 <pre> |
pascal@585 | 185 $ wget -O - "http://user:pass@ns.slitaz.org/?name=*.addams&ns=1.2.3.4" |
pascal@585 | 186 $ nslookup blog.gomez.addams.by.slitaz.org |
pascal@585 | 187 Name: blog.gomez.addams.by.slitaz.org |
pascal@585 | 188 Address 1: 5.6.7.8 |
pascal@583 | 189 </pre> |
pascal@583 | 190 </li> |
pascal@583 | 191 </ul> |
pascal@583 | 192 </div> |
pascal@583 | 193 |
pascal@583 | 194 <div id="footer"> |
pascal@583 | 195 <a href="http://www.slitaz.org/">SliTaz Website</a> |
pascal@583 | 196 <a href="index.cgi">Name Server</a> |
pascal@583 | 197 </div> |
pascal@583 | 198 |
pascal@583 | 199 </body> |
pascal@583 | 200 </html> |
pascal@583 | 201 EOT |
pascal@583 | 202 fi |