|
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...! X- j- m& G5 g5 [6 N2 X/ t
明天,对了就是明天 又少不了一顿臭骂...& M; N7 l1 l9 v4 U- a
2 c- p& [, Q) \* F
百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,5 W8 X; \) J u) \
; X( @1 p$ T3 |. t
" W$ B3 D8 B$ Y仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,
3 T4 Z a! ~0 E7 H; L3 d2 @8 j( Z& W: m瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,, v+ Q- U6 _6 _) Y) o
菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
/ b* Y+ E# \. \! b. z- R3 V0 d# Y! K3 _
6 _$ ?: y! ^3 h1 n+ x( i* b4 k' B) L' H
2 e0 {+ y+ G$ h) Z4 R- |/ B6 z( q
( q% r. J! e% ~, L- aliddnsipv6_ak="aliddns_id"8 p0 L0 A+ ~( Q3 T* y0 M
- aliddnsipv6_sk="password_info"
9 s0 F$ l# ^3 [' D - aliddnsipv6_name1='nas'
7 n* R9 W' e2 O' \$ Y( k, w - aliddnsipv6_domain='mydomain.cn'
: a" J5 i! t( s& e* N# D5 d - aliddnsipv6_ttl="600"- @( D6 `0 T) p/ F9 x |* O
- 1 A& M6 Z0 @9 s2 {, |, G6 L7 R% O
- if [ "$aliddnsipv6_name1" = "@" ]0 U" c7 q$ O3 g& m, X
- then* I/ b* |. f% A! Z, a% j# u
- aliddnsipv6_name=$aliddnsipv6_domain O6 J( o2 ^, y, p$ L/ M+ s6 U
- else
7 k3 f7 }+ ^2 v8 \) D1 k+ G - aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain4 f0 ^, ^/ z* M' C0 J8 |# c
- fi
' m- U1 E/ ~4 u/ V# ~0 F - 1 v) @) D+ k* y* g: J' v1 S
- now=`date`2 m/ o# S8 _+ Q! D
8 {7 d% Z4 f; y8 J- die () {+ A1 q( Z" H3 }# d- Z0 _ U, h
- echo $1
. n4 B1 @2 H8 t! [ - }
* @1 t; y0 K" j* {! v) N- v3 v - . }$ ]! ]3 O: E9 n3 D2 R3 b `$ E
- ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"4 K2 Q% j D+ O; l' e4 Q4 b& I
- 2 S8 K1 Q: n" A u. m4 p+ r
- for ipv6 in $ipv6s$ ?4 e: P3 @: f( E! Z% U3 M, F
- do
; {3 s1 T" }8 b: s - #ipv6 = $ipv60 `+ w T2 x! t! y
- break' x3 X* a3 a+ o0 {
- done
, D1 }' @+ K4 p2 a4 k5 {1 e
- G$ |. F' m8 e) [$ j) M. i. o- echo $ipv6
( ^8 H. ?" f/ G$ x/ a" h& M
`% E$ {/ o- R, A- n- current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`
; E9 O% P4 }2 C - #echo $current_ipv66 F3 i n% O' F% |9 s0 ^: c
- . G5 U; b' D, _, u
- current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`- E' ~6 a @# W* r
- echo $current_ipv6
+ q3 r! H- m0 w. a - 0 \2 q3 _+ q7 r
- if [ "$?" -eq "0" ]5 I% V8 X# e! A3 u6 `* w
- then
$ {' P0 E! Z" V$ b2 u - current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`% v4 q6 H( w3 L4 E; p7 Y
- echo $current_ipv6
" `) ~8 E1 ^$ p4 U% E$ g - . s! y) v3 i6 m3 c/ j
- if [ "$ipv6" = "$current_ipv6" ]
" Q0 U' [/ Y- s9 Y# |5 |0 o* e - then9 `" D& \0 Y4 q" B* V) X% N
- echo "skipping"
' h8 ~( V7 I% ?) X# X( ^5 K6 b - fi 0 x& b5 G+ z9 y# o8 H
- # fix when A record removed by manual dns is always update error
8 {7 _/ U6 f' Y - else/ k+ d+ l q9 W6 q$ {3 G# w4 p
- unset aliddnsipv6_record_id5 z( X2 O; H9 w U& W) s' v
- fi
( F3 l5 h6 z3 v6 G; E* F8 U, Y+ d - ! r; V: n+ X- i3 q7 o# q
0 L) F. E) L4 G$ N- G, p- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`( p! e' p, \5 H) ? {" l- K* j
: X; X) C2 w! {& k4 B k
8 U8 E+ A) w: i8 m, d/ V7 ?- urlencode() {# }8 E2 p, d6 R
- # urlencode <string>% u1 q" @: T0 C8 P2 g. G$ U
- out=""$ k+ z% N' q$ ^- c8 E) f
- while read -n1 c; J( e9 Y* q4 ~5 t4 U X* X
- do
9 ?) X5 M8 ~) U* |$ G - case $c in j9 X% h, ?1 `' S( \- s. w0 V ~
- [a-zA-Z0-9._-]) out="$out$c" ;;) W6 O& V9 c9 V6 e! d) J
- *) out="$out`printf '%%%02X' "'$c"`" ;;) H! T+ y/ G: [* q3 p. q
- esac3 ]2 v4 R: M. x
- done
0 W$ }( L* U' W - echo -n $out
% z8 g- G( P9 q y' ]1 s4 m4 r% m - }! I8 }. I" ~% k/ M9 k5 `
' L3 I9 _7 A q. S" z" a, [( R) G% r- enc() {$ T" X& a- c h4 e; S% b
- echo -n "$1" | urlencode( I$ j' ^' F9 n" w3 T" Q
- }9 i( T( [9 [; e$ t5 K' a2 e
- ' U, O8 P" s2 _- A. G4 f) x- Z
- send_request() {
W: Q4 l9 t0 @# _' z" R - local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
/ j7 J/ W5 O5 u- ?% y" p - local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)
! J; V3 B. U0 u% X3 H5 @. U - curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"6 I T9 i. F1 [2 y% c. A
- }
& ]' z& n3 ~/ }' R# ] - 7 d! I- j2 \( L
- get_recordid() {
}' L# r, \0 {9 ?: W - grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'4 o9 i3 w" I! Y8 z$ y$ R/ c8 Y9 a
- }5 c m- [" r& H$ T) s
+ j8 C1 f" }( i* G. U* M- query_recordid() {2 L8 V4 r! `$ M; `7 r% V" y
- send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
+ S5 l# J/ l: L/ `0 D l3 K# V - }
; E7 G H) [, q8 I( } - + O' M% m8 w7 E @0 k0 M$ ?5 D# H' `
- update_record() {
, f! d6 M* [5 c Z7 ` - 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 ~9 p& U T4 n - }
. M6 b$ | @+ d8 W$ J4 w' k5 \2 a
1 g) n% C) d3 L9 m- x- add_record() {" D2 d" S8 t! J/ _0 T8 K9 C$ M
- 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)"
4 e4 j8 S% X2 m: H9 W - }/ @' ]: ?: Q( u+ V/ `" w* C
- 8 z3 s# l" X6 l1 J" k/ ?
- #add support */%2A and @/%40 record
, E y0 t0 b) P$ d9 Z - 8 }+ ]) B$ ^' j7 k4 [9 {
) V2 N$ d* D0 p9 B- if [ "$aliddnsipv6_record_id" = "" ]% g) Q& ]3 t( w; g# q! z7 [7 Q
- then
$ ~& k# h; C9 q/ H" a - aliddnsipv6_record_id=`query_recordid | get_recordid`+ U8 S9 b* j4 M7 Z9 e2 `- c1 j( b
- #echo '-----------------' $aliddnsipv6_record_id
3 t( c* e- z9 n" f" N - fi
( b# @' H! h* N, p+ A - if [ "$aliddnsipv6_record_id" = "" ]
% v8 k4 d0 W; g8 r - then* y- a$ k7 {' l1 ~2 i0 _# D
- aliddnsipv6_record_id=`add_record | get_recordid`
/ A2 m) m2 v6 \3 n" X - echo "added record $aliddnsipv6_record_id"
9 O! X& E& w+ J* C O( A - else# q7 l* T6 {4 V" U! p- F1 }9 \
- update_record $aliddnsipv6_record_id
, U0 \% K4 \, b+ R0 Y* U9 m# ` - echo "updated record $aliddnsipv6_record_id"2 x8 Q6 D# M9 d* E4 |: j, i% R* O
- fi- Z* f% B0 u8 k7 k* ^) e' b% ]
- & x* V7 K* x2 M: C
复制代码
5 T+ d4 ~' O a- x8 I/ L3 ?0 J
% `" c2 X8 ~4 r2 L1 r3 h4 ~6 J. p% m( q$ D7 l1 e' O0 l
|
|