|
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
& ]9 P. V# p, [( ~' T5 q明天,对了就是明天 又少不了一顿臭骂.... Y$ W- L; p0 k$ C7 R, I: h U* c
% C% p& h% A/ V) Q' b/ _
百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,- `) ?! E' ^. `4 A& G& Z% ~
3 z5 l- y0 b1 D6 U; `4 g
3 ?+ ^0 Q: S- |$ L1 C
仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,' q' \7 W4 U, J7 H2 S( d2 Y
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,* T5 B9 p, s/ K! M9 ~
菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下' K2 E" j) x( e! A& M1 ^
c, Q9 Q' G8 ~% ]6 ^9 A! s2 P* |4 W, d3 E
) `1 o( @1 `1 E; [! C
! g9 R9 ^+ ], O: Y x/ j, n
& p* J C, c9 t/ L7 x3 q
- aliddnsipv6_ak="aliddns_id"
4 f; y9 H/ `7 ^/ t, w - aliddnsipv6_sk="password_info"
5 D# v. g; E6 N/ F. h7 P - aliddnsipv6_name1='nas'
* k6 X3 a3 O3 ^4 D) [: b! d2 @ - aliddnsipv6_domain='mydomain.cn'
( U" ^) w# ?* m; c - aliddnsipv6_ttl="600"% E' y2 z0 P2 P) x/ _
- 5 ]2 i9 g1 P! I$ h
- if [ "$aliddnsipv6_name1" = "@" ]
/ E5 M3 Z; ?& `1 W* e; [/ a - then
- ~. @) u- | n% G4 {3 g! B - aliddnsipv6_name=$aliddnsipv6_domain
- |/ a: g4 A% [/ ]8 {5 l- ~+ g - else4 L' B& m" b9 n9 V c
- aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
& J4 p& A k! s: A" N5 V& p - fi1 O5 V/ l. m7 _5 `2 s
% J8 x5 |; ?: o7 F- now=`date`" p; p% W J; n, n
- 7 v2 B3 K: o. A) G7 m
- die () { T- b, A# X) i: @
- echo $1, f. r3 y- U9 i$ h2 G! N( F
- }
7 q4 c( ~/ C6 G) Z* q - O: B2 ?& O3 m) T
- ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"" E' @ M# g2 z% e+ M
6 @; Z1 o" p* w1 q" Z- for ipv6 in $ipv6s
, l1 u- V7 F% J; M - do6 o4 [1 H a$ Y0 o* w, o4 h
- #ipv6 = $ipv6; e$ a. V1 O' c6 f; L
- break( k2 {4 K' H1 a6 n
- done
* @. q, ^2 T; C6 r: |9 Y" ` - 2 V9 |7 t2 P! Y* @) y( e' b
- echo $ipv6. u5 U7 \4 Q' s
- : l1 C9 [7 [1 A+ ` M0 z. w4 f
- current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`- `. O7 v* J7 d
- #echo $current_ipv6
/ o* s* L$ R% m' R' @ - 6 p+ r; Y J C- q, |# T' y; a
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
8 n( }$ t; U; j; `$ W" Z - echo $current_ipv6' q$ W8 a$ J8 Q/ g8 {0 q3 Y% c
- 8 v1 \) H' [9 r+ F+ w( P
- if [ "$?" -eq "0" ]# i2 V5 ^ k! ?# k H# C8 [& F/ Y
- then6 S: k/ {; k7 I% p0 p
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`+ x) |2 H( Z p7 R& f* W& Z" ~
- echo $current_ipv6
3 A$ J) L, u1 I$ R$ q2 m
: p" L- Z1 G7 ?0 g' r$ j) r- if [ "$ipv6" = "$current_ipv6" ]* g4 C* u3 ?# H" V
- then
5 d2 T/ N3 n8 G - echo "skipping" `* n! s2 p; G# V% G3 z# O- n
- fi $ r# z$ C/ m$ v: U3 @$ s
- # fix when A record removed by manual dns is always update error
- i o+ Y p, u+ x2 ?" F( {7 L - else8 V- @0 u7 C e) V: p$ I
- unset aliddnsipv6_record_id
$ t( ^' m9 k+ \- r- R/ B: p - fi
: Z( }0 y7 }1 f - , J V) T" A5 L/ d3 y* b S, k
7 c7 M2 s4 ^2 x& X. X- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`/ l! b+ Z/ k9 e
- , f: w: X( @. b9 P
- . w4 N) I- V4 J: j8 J- d j
- urlencode() {
9 K9 o9 f1 z) s# g - # urlencode <string>' T6 ^/ y) {5 K5 z2 k
- out=""
* r8 }, u ~9 I- d) l - while read -n1 c! y! p1 j% \# N" y
- do
( K7 |$ h& M5 Q& T6 F; c - case $c in
) L5 X9 |+ A& o: h7 X" n' a& F - [a-zA-Z0-9._-]) out="$out$c" ;;
( G s& c6 S3 E5 ` - *) out="$out`printf '%%%02X' "'$c"`" ;;
M" k: t6 v4 N5 {+ A$ m4 C8 f( U$ B - esac
( U x8 ]8 j8 [ - done
- A. T, y9 N/ h) a - echo -n $out! _2 {! V3 ?3 T$ C3 I4 i
- }
! D+ s% f' t& Q" r) T N
9 v F! z, Q$ ?3 ?2 `* J4 v+ {- enc() {
* M" ~; b: U% _ - echo -n "$1" | urlencode! G0 l2 G0 U$ w n9 U) D/ v
- }
* q; G& [6 S4 Y5 m
! b; Q! a# R/ u5 r; ]- send_request() {
4 U2 I) d) v, ~+ o& L - local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"4 p2 Y' ], B" E/ N- \1 @
- local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64). U1 @4 B" {+ S X% x
- curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
$ W2 h& k8 s0 g2 I8 h6 E - }
8 A/ @; w' R% p/ |4 Q4 z g4 X - : G E& }, W8 }( L! F3 F$ d
- get_recordid() {
) V0 s$ R) ?$ [2 P h; a - grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'1 d0 N1 n. q! V! u% [! l
- }1 S _7 F7 j) P p* `/ \& ^( {
4 t3 D, h1 T2 I' e* R7 W8 F- query_recordid() {
' ^) W2 \5 }$ N$ S- |$ L3 g2 p* k, }/ S - send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"* J7 l! ^' l+ q, ~
- }: z; n+ r( Q2 p
% I) b7 a+ _& ]5 _* [- update_record() {
- A- H3 y8 c$ y' \. 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)"7 ?, |/ o3 e' Y: ?% D/ q, f! q) M
- }
( Y" L7 U2 h7 B/ ^( ^: p1 f
; U% z$ J! @; ^5 |* ^- add_record() {
# z3 @. j* d) H% F) R& 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)"
5 E0 P% y9 K G% l9 W/ q - }8 G- V0 _: e( j# [
9 @) l$ e& c; j/ N5 j+ r- #add support */%2A and @/%40 record1 h Q6 w; j$ Q8 K/ W N8 o' L( P9 O
- J2 g/ u r7 s. C0 r- d
. h. \# O: u+ Q& d+ ~) c- if [ "$aliddnsipv6_record_id" = "" ]
* C Z# g# o5 A0 Z9 | - then
6 a5 D" w" G& R9 `. k; s4 ]1 t - aliddnsipv6_record_id=`query_recordid | get_recordid`; d+ b# n. W3 {! }
- #echo '-----------------' $aliddnsipv6_record_id
; [+ v" M6 O6 l, J - fi
( m4 _. x; z- \/ p# |! `4 a - if [ "$aliddnsipv6_record_id" = "" ]
5 a4 p; c8 q$ d, R - then
P' F# ^6 \ r8 ^+ f - aliddnsipv6_record_id=`add_record | get_recordid`
4 B6 [+ p. K# b1 \- v - echo "added record $aliddnsipv6_record_id"
7 U( @; b6 H+ A" ?& W; G - else/ o! T) D3 O" Z" U
- update_record $aliddnsipv6_record_id2 W2 Z' E2 r! O4 S2 l& l @$ n
- echo "updated record $aliddnsipv6_record_id"0 u8 m7 p; Q0 F: w) J- W
- fi
0 F: k% P: Q- ^: @5 i - * N/ W9 A1 m0 a7 y
复制代码
2 `& y" ^5 C" W) v) p+ H; {7 O
/ C9 I& J5 W; V0 d9 e) z) ^- u3 v# M/ N3 C8 e
|
|