https://teratail.com/questions/267963
上記の回答をしていただいた方のおかげで、毎日 google app script を用いて、MX レコードの結果を
APIで取得して、slack に送ることができるようになりました。
今後毎日取得して、前日とMXレコードが変更されていないか確認しようと思っていました。
しかしながら 毎日取得するMXレコードの値は必ずしも毎日同じであるとは限りません。
例えば google のmx レコードは
google.com. 274 IN MX 10 aspmx.l.google.com. google.com. 274 IN MX 30 alt2.aspmx.l.google.com. google.com. 274 IN MX 20 alt1.aspmx.l.google.com. google.com. 274 IN MX 50 alt4.aspmx.l.google.com. google.com. 274 IN MX 40 alt3.aspmx.l.google.com.
だったり
google.com. 274 IN MX 20 alt1.aspmx.l.google.com. google.com. 274 IN MX 50 alt4.aspmx.l.google.com. google.com. 274 IN MX 10 aspmx.l.google.com. google.com. 274 IN MX 30 alt2.aspmx.l.google.com. google.com. 274 IN MX 40 alt3.aspmx.l.google.com.
だったりして、毎日異なる順番になります。
基本的にはMXレコードの値が変更されていなければ、上記のような行の並び順が異なっているのでしたら
問題ないと考えています。
そこでもしMXレコードの値が前回の出力と比べて書き換えられているとしたら、どのようにすれば、いいのか見当がつきません・
(diffコマンドは使えないので)
現時点では、上記のような結果をslackで一日に一回ポップアップするようにしています。下記のコードになにか書き足す形で
昨日取得したMXレコードと本日取得したMXレコードを比較して書き換えられていないかを確認するロジックは生成できませんでしょうか?
例えば、昨日MXレコードに変更がなかったら、OK、もし書き換えられていたらNGを出力するとか
お知恵をいただければと思います。
下記は私が書いたコードですslackに飛ばすwebhookの箇所は省略しています・
よろしくお願いいたします。
1const apiUrl = "https://dns.google.com/resolve"; 2const type = "MX"; 3const name = "google.com"; 4const url = `${apiUrl}?name=${name}&type=${type}`; 5const response = UrlFetchApp.fetch(url); 6data0 = JSON.parse(response); 7content = [data0.Answer[0].data]; 8Logger.log(content); 9 10 11function dns() { 12 var jsonData = 13 { 14 "username" : username, 15 "icon_emoji": icon, 16 "text": content 17 }; 18 Logger.log(jsonData); 19 20 var payload = JSON.stringify(jsonData); 21 22 var options = 23 { 24 "method" : "post", 25 "contentType" : "application/json", 26 "payload" : payload 27 }; 28 if (response.getResponseCode() == 200) { 29 UrlFetchApp.fetch(postUrl, options); 30 } 31}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。