|
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
5 j- D- ~& h8 O! s明天,对了就是明天 又少不了一顿臭骂...
2 `4 Z3 ~5 A3 T k( ^2 i \
1 [$ _+ L; n! Y8 R百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,
% w# Z8 \ ^8 O7 c
9 C; H0 G% e0 }/ ?' z% Y8 s1 ] j- w# j
仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,: W p: G7 f2 ^1 |3 ?! ]' A' [% p9 ]
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,
) T. ~+ X0 o# w菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下) u. u. T+ S( R& S9 z
9 o$ P( w) a) h' \: J( z/ V+ m% ?! `5 w/ L0 t5 j3 q
0 I; X" P6 P# ?4 y
, F" V, {; ^5 c; q
" Q2 ?- y- K. w# ` r3 f$ x5 r! d! {
- aliddnsipv6_ak="aliddns_id"
9 u e# H% e; w' c! ^ - aliddnsipv6_sk="password_info"# q. \$ S6 e$ I. @1 {$ z9 [0 D
- aliddnsipv6_name1='nas'
( W P& _( R" z7 O/ B - aliddnsipv6_domain='mydomain.cn'2 W. d1 v2 T8 m+ H, B
- aliddnsipv6_ttl="600": f+ i" B5 W9 p
' G( N$ {& l; ~- if [ "$aliddnsipv6_name1" = "@" ]
7 c8 W0 I" L2 B8 e u8 `1 V3 O7 L - then s& K9 f; E; H: C {9 D6 w% E
- aliddnsipv6_name=$aliddnsipv6_domain" l7 l/ j+ Y s2 S, i
- else
5 p2 G! M% j2 O/ \8 Q( o - aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain! J( s7 ?3 z7 |1 X; H. R
- fi, z) z4 c1 P3 ~/ k* f! M
$ u' V0 s5 k$ A- now=`date`+ l9 b t1 C! t- U
Y) d$ O9 O6 n2 A- die () {
( e( a: c+ y. h - echo $1
* J4 L! |3 C# d# f: u# o& V' r - }
2 _! i& ~) j5 b% y; n - 4 s! D; U% v2 N, k
- ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"
' m$ k4 t! E5 o( Y - ; r" }. C' u. D7 n
- for ipv6 in $ipv6s
( T/ Q: H4 I7 L2 P - do
/ f. m( W& j8 A - #ipv6 = $ipv6$ o: X T, o$ u( Y1 k, f O
- break
# G a2 R8 w" R: g$ G - done0 P4 \7 Z8 t+ F- S ?1 H
- 7 Q' O ?8 x3 _% `4 ~# ?
- echo $ipv6- C. s* a/ m8 Q
! c! t/ H, j0 F4 f6 Z7 q, n- current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`' H' n7 A5 ~" x9 k7 ^- C
- #echo $current_ipv69 K5 m. F; I6 G5 J
- 8 A7 ?' m3 U3 J1 B
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`8 r8 F1 U0 X* d% d, ~- B
- echo $current_ipv6
. D- W g) v; b3 x, H' e: C3 p - 8 T$ }1 ~4 M, H4 R9 A
- if [ "$?" -eq "0" ]7 h7 m( q) i$ ^( E- s/ r2 M3 Z
- then
9 D, F8 ?/ S; s& M/ V7 K4 b - current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`. _; d) i8 z, G, z
- echo $current_ipv6
# x- J- l. \, I T! n- O3 O
, e5 \+ H4 L! O, e8 ]+ b" k- if [ "$ipv6" = "$current_ipv6" ]8 c$ Y$ p0 Q6 P1 E d
- then
, U: i" h: k; Q- o9 R6 } - echo "skipping"" v+ ] l' s1 r4 q; G( u) _( o* e
- fi
9 Y# M$ c8 ~) \/ ?; f9 q - # fix when A record removed by manual dns is always update error0 M4 k) {4 B3 `4 q7 P+ K' |2 c+ \/ {
- else1 i |* H: z) _
- unset aliddnsipv6_record_id2 A6 y# M$ x+ z& O! p
- fi" o* i D- }- [& `) W! F9 }# a
6 E3 ^( p. ^8 C# j) k
2 T& ?, K' r) O7 Q8 d) k" k8 j- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
- `1 ~5 J1 z) C4 H5 o. N
( R# {- ^' }% K* C1 P( ?
1 l: F8 w% u4 q3 r- urlencode() { l q5 {3 |* _* Q# p' _
- # urlencode <string>
0 V- J; Z% m9 S0 l: G3 R - out=""% V5 u5 ~# D4 E& C/ h
- while read -n1 c. W1 A! M# [/ v$ T( Y6 e' b
- do
9 N9 m' f0 S; h) T! e2 j# j - case $c in
3 j! r: f! t z& R) J - [a-zA-Z0-9._-]) out="$out$c" ;;7 g" y7 L" P, b2 q2 m' }* E5 N9 k
- *) out="$out`printf '%%%02X' "'$c"`" ;;
, E$ F( w! r5 T1 I y3 j+ } - esac
% n% U, o, G& a& }2 v - done
! o+ n7 r- A& w4 L* G - echo -n $out
3 o* F0 I3 l h ?6 b. I - }
- _! Z* k% ^. Z" c* _5 v. n& v) T
2 k9 }( j+ t" j- {( f# I- enc() {
4 i; J/ {$ n/ ^5 `2 e9 n# L - echo -n "$1" | urlencode
. H( T: p$ i& } - }, l4 v' F, J) M
- ( p& J6 Q% s8 p+ G$ t/ E5 j
- send_request() {! B5 O8 K2 o. |2 q
- local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
$ J0 I3 U1 p' D" q$ v3 |3 E - local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)' f% C6 [ M; m+ c7 G: `$ c
- curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
) p8 f' N+ Y1 M0 _; h - }( f' x- N) H7 {; i; J8 [
g, q" s* M4 C/ @: a! M- get_recordid() {
- ~- U- L7 u) V7 D0 M( D& K - grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
0 P [7 f0 Q- [5 L - }& R+ F$ `3 k2 w" E Z' p! p
- 1 Y! d! S0 j7 q+ o* g/ ~- V
- query_recordid() {
k; ]' r# t3 g. }' S7 S - send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"" g+ ]3 J; l3 p+ Z* q# l4 b; J
- } j& _. \2 C; S5 B+ b7 Y
' S0 e0 y5 g8 j2 |8 X5 e$ t- X- update_record() {
: n# ^5 l5 n4 m* w8 H - send_request "UpdateDomainRecord" "RR=$aliddnsipv6_name1&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)"
8 X4 M. c' \: U( i$ p2 M - }
( |+ r5 r' x7 l% h4 b9 ? T( ]5 q - 7 e7 v2 k+ x+ v8 t# t6 `, _
- add_record() {' W1 {7 L4 }" c' [ u. t
- send_request "AddDomainRecord&DomainName=$aliddnsipv6_domain" "RR=$aliddnsipv6_name1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)"
: G" O k: U0 g& _, h - }
" u/ }' P$ {0 W4 p3 j+ r1 |
/ b# l! I4 E7 {' P8 Q$ C- #add support */%2A and @/%40 record% Z0 ^+ P, v$ t/ l/ O
- # a% b [, U2 F J! ]7 z8 b: x4 y* i
+ @0 q R- Y9 X d- if [ "$aliddnsipv6_record_id" = "" ]
3 j5 s, z+ k; `) Y - then
3 x: l1 A+ f7 d; T1 z) Z) M - aliddnsipv6_record_id=`query_recordid | get_recordid`& t& b9 c! e" k* W5 i- b
- #echo '-----------------' $aliddnsipv6_record_id u0 L3 i2 q6 d
- fi
' q4 @4 D* O# f# m& m - if [ "$aliddnsipv6_record_id" = "" ]7 T. O" q3 ?, P9 \/ S/ m3 g! q) j
- then1 u; C2 Y' u7 a! k2 d& s
- aliddnsipv6_record_id=`add_record | get_recordid`
' a/ D. z4 l* K# O0 U7 v$ Q - echo "added record $aliddnsipv6_record_id"# T) ?/ W, T: m. z a4 P
- else( E' }$ W+ J( R+ q- [ H; S( X
- update_record $aliddnsipv6_record_id
+ L% G1 T& l( P% e, Z0 h - echo "updated record $aliddnsipv6_record_id"
$ B* k! v- }: p* o- t - fi
0 R9 l4 f; j1 h' w - . f* Q }7 k* c8 |& M
复制代码 ' d. [1 ]( u' I9 T2 T
5 G! L3 X9 n/ O/ M# [8 c
; N, Z. ~; \2 w3 D% `( c, m |
|