|
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
9 Q- a4 @8 n' D0 y6 a F8 P* J6 o% d明天,对了就是明天 又少不了一顿臭骂...( r! x) n) z& a9 `
" g* @6 t# n. u( |% Z
百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,# ]5 @1 [ f. v1 m# j
& b, s" q: f$ ?2 {3 B8 I
7 M m! N6 c2 E6 \6 g仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,
6 N+ s+ f r# S8 s瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,
, L% T" D% P- W7 \% [0 X( D菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
/ I S6 b$ [# A$ V4 u3 ?0 \% h
* H9 f8 F$ \) q6 Q$ [" t" \, J" K* N5 L/ M7 p0 b, P; w& m
1 w% K( S; j" p2 g% n/ k
( s$ h' H( ^# y/ V2 Q3 E. y0 s, k* P9 ^7 D
- aliddnsipv6_ak="aliddns_id"8 X5 x0 C. w3 a' w1 ]7 q
- aliddnsipv6_sk="password_info"0 p4 k9 i, K. W- V/ O3 c
- aliddnsipv6_name1='nas' D8 n q4 c" a' G6 k( s
- aliddnsipv6_domain='mydomain.cn'
. u! |3 P' _& \0 U3 z - aliddnsipv6_ttl="600"2 I1 f4 K7 W: h, h7 V3 r
' g. h% f8 J" I; V- if [ "$aliddnsipv6_name1" = "@" ]( y, ~% P4 Y. a7 E+ X1 b# s
- then g5 ^: {6 b) ~' q* n. m
- aliddnsipv6_name=$aliddnsipv6_domain
" d. Z: W6 K( d" ]) P6 s. d - else+ M7 e* @. `* ?$ a' E( l
- aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain n1 \5 P1 @& n$ q- F, l1 Q! B
- fi; [2 S( L0 o5 u5 f3 W% p" y
8 b T( Y: d1 ~+ u2 n J1 [! \- now=`date`, v2 ~5 `# E7 a
- 7 j g$ ~1 m: G- N, E
- die () {
4 {. ^( R m3 B - echo $1
: e/ b2 s7 g8 G4 V; i - }
3 t) u9 i. Z2 e |& E T0 f) E - Z V6 U9 W' t8 n, z5 x
- ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"% d$ i. A: \+ ?+ x1 `
/ I# N/ u* l( p' t4 W2 p# W- for ipv6 in $ipv6s
2 ^; ^/ H1 t9 D4 g# Z* X - do
; `% H- j8 n7 s' U: ^5 r$ C$ Z) { - #ipv6 = $ipv6) ^9 Q# x. o5 i% @- E
- break
& b1 f4 u. [0 F& G) ?7 W - done
7 ?* `3 w0 X( Q
- }5 x! S% I: q8 n7 Q- echo $ipv6
8 E# h" j, u/ @' b7 f - 5 d2 c$ r2 O# n+ ^" x' h8 L
- current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`. V) y1 u. j" p9 }7 ~8 Y0 S. @
- #echo $current_ipv65 U$ Y0 P3 e! Z6 Y/ C: Z6 H
- 7 u6 R' u! V0 _6 x9 {( _
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
: C l3 B- A' B( f - echo $current_ipv6# G* I. Y% B1 d9 o2 K# U+ v
- 3 J U8 ^2 _" `+ G( h) s$ r# V
- if [ "$?" -eq "0" ]
3 v/ I: S+ w% f1 ~% A0 T7 q - then
0 _* T, d- O! @: l6 k/ b - current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
, a2 V4 N* w/ q* I+ J2 q# b% n - echo $current_ipv60 D0 ~0 Q% a9 ^. J q1 ~7 d
* u4 m- }8 r/ V2 {4 L. B- if [ "$ipv6" = "$current_ipv6" ]
+ Q+ |! |0 C z - then' J; T8 |6 b; M% V' b. f
- echo "skipping"& ?2 a# R, r) M* B$ T, i
- fi " I1 |! b) J$ Y" e3 V( _& N: V
- # fix when A record removed by manual dns is always update error4 J% f; g4 d/ _" b
- else6 H# [# B8 I4 Y: {6 L
- unset aliddnsipv6_record_id0 N G, Z7 h% D+ R
- fi0 ]( H$ | I* ]/ E1 r. k
- 6 H4 o# A2 Y# Z* Y3 B q; l
9 n- |' J% ^9 c5 f1 W- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`+ {; ?+ H" p, U) w
- / R6 `4 E+ ^ v! q$ q
9 H4 R* V) M* n. a! E- urlencode() {4 S# ]: P% [7 x: e n2 A
- # urlencode <string>! K+ i. M6 p: a
- out=""
! C) u) F; y) S1 D+ x - while read -n1 c% {" k$ j3 \1 h
- do1 g# V6 _, w. P% X. ~
- case $c in
# @( E* r! I& C; b7 k - [a-zA-Z0-9._-]) out="$out$c" ;;1 u8 l7 v8 ?* c9 ~% j/ w+ \- w
- *) out="$out`printf '%%%02X' "'$c"`" ;;" D) {2 J7 h4 K" p# r
- esac
# g( X; v! d/ y2 t4 c - done
' K/ \) Q7 Z4 E4 B" j - echo -n $out
+ e( h" L1 V5 s4 Q - } ~3 Q& C1 _8 @" {" I+ Q
- 6 q$ s9 u3 Y# k: M( i1 E: N
- enc() {/ r% p j3 N% V) y, n( b. y
- echo -n "$1" | urlencode6 J* C6 l" Q2 V; Y
- }+ v2 Q, i M& j- Z7 G* ^0 t, v& ~
- 5 s8 R5 @4 X8 T
- send_request() {; v9 H5 [* o% @/ g- U2 V% x. J
- local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
# F3 k% w2 L% ~, } - local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)
5 I0 k+ G9 Z0 P - curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
& p( C' n- W" Y& F5 n - }# E( }6 i8 H' h2 n
) q% e, D( W: M- L6 Q( f- get_recordid() {/ D+ i6 ^. N3 s5 m7 e
- grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'5 ^3 s, J: D% o
- }
5 ~( x, E+ J. i1 c9 s* e. N - 1 }1 u6 `/ }) k# S! j6 D9 V( h. c& y
- query_recordid() {
4 I3 v/ a+ j. m" M4 ~ - send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
, H2 |! E7 a1 Y( R- m, L - }
. y+ x9 `- h6 Z/ G6 v6 W6 B - + b2 p- O$ O4 L3 H/ |; l
- update_record() {
% Q- C2 L. Q" k+ e - 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)"3 K: Q% b" E9 m {1 Y1 n
- }7 Z8 P7 S% B% i3 M( K
- / d' o( I) o$ Q$ u# Z8 ]
- add_record() {
R$ c5 I+ A' ` - 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)"
/ k( L' D* E. d0 Y* p - }
+ C' s& ]) c$ D6 \( e
$ i$ x$ c3 `; K. X. f% @5 Z- #add support */%2A and @/%40 record/ l V! a. ]( C; K; |
- & V# L+ R* P; n4 O
6 ~; h/ H. d3 v+ B4 C- if [ "$aliddnsipv6_record_id" = "" ]
+ m! |( N6 A$ ]% p- X2 c f) ?& H - then1 H5 a% T* T" s. N- l8 h; V
- aliddnsipv6_record_id=`query_recordid | get_recordid`
! V( L `; k e0 k. N, w( ?% } - #echo '-----------------' $aliddnsipv6_record_id
9 ], k; ^7 `9 M X - fi Z p3 l4 k. E# a
- if [ "$aliddnsipv6_record_id" = "" ]
; I2 e" b8 w# X* A. u- c- m - then/ e" v* f2 a1 Q5 c' y( z& f
- aliddnsipv6_record_id=`add_record | get_recordid`
, j5 A. \4 n: b9 x - echo "added record $aliddnsipv6_record_id"
9 a [9 m o9 R! |, N8 B( v$ { - else
0 N. l$ e2 Q1 P( c' V4 r - update_record $aliddnsipv6_record_id$ d% b" N8 v1 Y
- echo "updated record $aliddnsipv6_record_id"( s9 T; p% e" l+ a2 L6 s- ^
- fi+ ~% c; N; ~" u9 W4 {4 I! y: T# b
- " v: m# d( ?6 e/ f; _- j& q# D, ?
复制代码
7 `6 T( `: r# B" x: a9 t1 i' p* z: Z% [) b! G
1 ]8 I6 k$ W: f1 O* F! j" F6 \
|
|