|
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...( _, D$ ?4 v4 I9 O& Y
明天,对了就是明天 又少不了一顿臭骂...
4 l( n$ n6 g+ @" S% R. G1 A% n( j! _5 I
+ e5 @' Q& ?( `5 s( Z# C百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,
( r6 i+ N- c: W# ^: w
1 o. y; k/ o# S x& v4 b$ o$ _
& O8 Y# n- f! J# m仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,0 [& h* ^$ Y' L* a( p
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,
9 u; `7 a! a3 t, l) r菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
9 c( `2 p5 B4 E3 ]! V) `3 {# t' w6 z: S$ V2 ]) b, _; B
4 o; }3 H1 k" _+ |+ ?
6 O9 k" D1 t) Q2 w4 z5 I
: i/ R3 s! B1 _6 e7 J& k9 f- g
0 O9 |1 j- ]: Z9 u
- aliddnsipv6_ak="aliddns_id"
9 b! Q! M4 C0 ~9 x: j - aliddnsipv6_sk="password_info"- ^ m# \4 {6 A+ J9 k2 B
- aliddnsipv6_name1='nas': x) b7 a% ^; I- a% n1 H
- aliddnsipv6_domain='mydomain.cn'
# X; Q% @; y! N - aliddnsipv6_ttl="600") k3 H- V5 l- K5 B( e1 e; T
) V% G2 P% x( f' V! J- if [ "$aliddnsipv6_name1" = "@" ]
; f0 {' D* C; K/ T+ Q - then
, S( b( N# H& R {; `0 D7 l - aliddnsipv6_name=$aliddnsipv6_domain
" G3 B# o+ c" o8 M _ - else
# Z4 ~0 n, P1 h! D - aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
5 Z1 r2 S1 q; @ - fi! ?4 Z( ?8 j) V' ^* _8 q
- : d4 l; u5 F+ j3 x8 F
- now=`date`2 p2 h4 V. g* ^9 J8 ^% H
! Y& a# h2 @: Y) l& j- die () {' x+ P# _( ~* a T; T9 D3 P' Q3 ?
- echo $1! n" F3 F; w, E* s
- }+ V6 @$ w$ i2 C0 G
8 g- e" W9 B' q S- ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"4 [* V) w9 @; N& D
+ J7 }# |9 H+ R. w( T) i3 [2 _- for ipv6 in $ipv6s# E6 T( x/ D- m1 @0 G! a! }
- do
2 Y# \! m1 x7 z- L9 |# J4 f- i" ?* t - #ipv6 = $ipv61 }- h+ H6 @; @" h
- break
$ z0 X' P5 k, x/ @ - done
. \9 I* `# V+ @9 S b* O
, y% l# a9 d& Q. I- echo $ipv6
8 R% ]6 q" y. C, M0 u* m
& [4 i. O& B( K1 g$ |5 I# L \- current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`
+ o* Y; {0 j: t4 R - #echo $current_ipv65 G1 U8 S7 x5 U! x/ X- x( ^
- ; \# g$ w; \7 F& E7 S$ H" f
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
( `2 g+ h, H Z/ ]& g* T - echo $current_ipv6( G E6 T! ]/ c7 N2 x( K5 G
- % Z. E) c4 X8 F- _7 O
- if [ "$?" -eq "0" ]
$ r9 r) L$ V" e. P/ E - then. W% w7 W% d$ r, Z
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`5 {2 C; t3 ?1 U4 Z* q0 F+ x
- echo $current_ipv6
, m* o6 f- i' t, g5 d% C
" @) T3 z' k! L M/ E- if [ "$ipv6" = "$current_ipv6" ]
# u% g1 J! F3 L7 C - then
9 X+ H7 {/ @4 E4 i: H: j3 t3 X, U - echo "skipping"& b9 {- R8 R4 W! ~$ n
- fi
/ Z+ u! J( G9 s# } ` - # fix when A record removed by manual dns is always update error
& A& p/ U2 N, K; ` - else' f. h4 P! ^4 t) A& k3 @: o
- unset aliddnsipv6_record_id
! z2 X5 z% }& X+ y( M - fi% H; X, q) i4 R/ Q
; _) k9 n2 _ |# W- 4 A! X5 D+ w! _6 L5 E1 h- y6 b8 g; g
- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`$ W2 i- n9 F1 x- J0 `5 B
$ q6 d6 G% z* ?4 O: \
0 r8 {; U$ z- o7 Q4 d5 x8 H- urlencode() {
: a* W8 q" {! u+ m, l9 E - # urlencode <string>1 ~0 H$ X. Z% y- Q
- out=""( J' n2 k8 i) R' B
- while read -n1 c6 R& Z7 j( l" Q- h
- do
4 f: U" H B+ T- I) a7 A# c1 H; r - case $c in
3 K g( f: ]" u* t2 u& j! @; D6 ? - [a-zA-Z0-9._-]) out="$out$c" ;;
7 B* G. e7 b: {( y - *) out="$out`printf '%%%02X' "'$c"`" ;;. \ N( n, w: j& L
- esac' t' J2 L! ` t5 {9 S( g$ I
- done" }" f6 Y/ ?! P, s+ r4 p7 \
- echo -n $out: G' v8 l6 L! T9 V0 F3 `0 B
- }
, A6 w/ Z& l: z* s# F
6 c9 X, [/ K: _; H6 \: [- U7 S- enc() {* r/ ]% B! r6 J, s! z6 d
- echo -n "$1" | urlencode
0 l8 V8 f& z- L: Z/ |# e5 Y - }. }) h0 }6 D) K0 f! D7 u ]
- / f! X; }; ]+ n9 a- n% V8 k
- send_request() {' v) P6 w0 K# @' q0 A4 r7 g& k
- local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
/ g, ?4 i# H! \5 h7 H - local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)
0 [ t) D9 c. w: I$ f l - curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
0 a: i! |" `9 y( H! d - }
& B6 }6 ]% Y1 n
5 U0 T" s7 b8 V- get_recordid() {
( U9 k" v: R: y( @: _2 G - grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'; } l( C5 G3 w$ o( b
- }# Q4 H4 e7 ?- s
- 4 p$ ?' i9 i O8 x( @7 U3 p
- query_recordid() {# j8 l$ Y# o7 d
- send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
; A1 i) j8 L" k: v( B - }
& S; j4 z! p* R7 U; _& m2 S7 t
; o5 f( g1 x4 X, J0 r$ c+ H3 U$ C- update_record() {6 J: r0 W8 `4 u7 L& V
- 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)"
! @+ r0 ` ?4 O3 X( M! Q - }! `* ]1 b# J1 m7 n# s
% \ O& l) R7 o! P/ L- add_record() {
/ [# [# Z, m2 B" J# D - 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)". E' S8 i. s2 t6 b2 A
- }
8 p( Y' N( T) W1 y" k+ p - ; W3 j$ ~& T3 Z- b5 `# b T! D9 S
- #add support */%2A and @/%40 record
$ E0 ?; |6 V( T$ W' b - : @' T5 n9 s* e' V
- $ Q( z& ^2 P; L
- if [ "$aliddnsipv6_record_id" = "" ]4 p4 V7 Z" N; o- t9 b6 h
- then
0 G3 g8 I- t2 {% m z - aliddnsipv6_record_id=`query_recordid | get_recordid`
* }4 H+ [3 y2 Y# T5 C - #echo '-----------------' $aliddnsipv6_record_id Y$ @% d; R7 ~' N, ^- W
- fi
+ }9 ^+ P; a& L* {& ` u7 r - if [ "$aliddnsipv6_record_id" = "" ]
3 M$ W, B) v. {6 ]& Z - then: o0 D* t' [9 |7 B, }. I+ H
- aliddnsipv6_record_id=`add_record | get_recordid`
* O/ c7 g1 z9 e' h - echo "added record $aliddnsipv6_record_id"
; q5 i3 l( k, L) Z4 ^& Q - else" s$ e1 X: B" c6 M
- update_record $aliddnsipv6_record_id
) {. J* s$ H$ r- u# O - echo "updated record $aliddnsipv6_record_id"
2 ^8 i/ V0 O/ @1 L- q# S - fi5 X; L7 P5 @1 u# W' i5 a( e
8 }& B( w% s" A
复制代码 / G6 l5 H1 t/ l6 [& N5 M/ }5 X
/ X+ a9 \# s I/ @- n6 K w. q6 I7 [ e4 k- F; u
|
|