AppleScriptとappspot.comを使って
インターネットに接続しているIPアドレスを取得します。
要点
■プライベートアドレスではなくwwwに接続しているIPを取得します。
AirMac経由やプロクシ経由等
自分に振られているプライベートIPアドレスではなく
接続しているグローバルIPアドレスを取得します。
先に言っておくと
方法的には、こちら[LINK]の記事のappspot版です。.......汗
[javascript]IPアドレスを取得する。[LINK]の
AppleScript版です
戻り値の最後に改行無しパターン
tell application "Finder"
set My_URL to "http://applescriptip.appspot.com/" as Unicode text
tell application "Safari"
launch
activate
make new document
delay 1
tell window 1
open location My_URL
end tell
tell window 1
open location My_URL
end tell
delay 1
set OriginaltheIP to text of document 1
set CnttheIP to (the length of characters of OriginaltheIP) - 1
set theIP to characters 1 thru CnttheIP of OriginaltheIP as Unicode text
end tell
activate
display dialog ¬
"IPアドレスが取得出来ました\nコピーして下さい。" default answer ¬
the theIP with icon 1 with title "IPアドレスをコピーしてください"
end tell
tell application "Safari"
close window 1
end tell
改行有りパターンがあります。
tell application "Finder"
set My_URL to "http://applescriptip.appspot.com/" as Unicode text
tell application "Safari"
launch
activate
make new document
delay 1
tell window 1
open location My_URL
end tell
tell window 1
open location My_URL
end tell
delay 1
set OriginaltheIP to text of document 1
end tell
activate
display dialog ¬
"IPアドレスが取得出来ました\nコピーして下さい。" default answer ¬
the OriginaltheIP with icon 1 with title "IPアドレスをコピーしてください"
end tell
tell application "Safari"
close window 1
end tell
改行無しパターン
「GetwwwIP_delLF.scpt.zip」をダウンロード[LINK]
「GetwwwIP_delLF.html」をダウンロード
改行有りパターン
「GetwwwIP_addLF.scpt.zip」をダウンロード[Download]
「GetwwwIP_addLF.html」をダウンロード
調整項目
■URLを2回よみこませています。
windowが開いていないのにURLを呼び出すと
戻り値を取得出来ない事があったので
エラーよけのまじない的に2回読み込ませています。
■ディレイ値(処理待ち時間)
とにかく
SafariがWindowsを描画してからURLを呼び出さないと
戻り値としてのIPアドレスが取得出来ないので
環境
特にマシンスペックによっては
『1』になっている所を『2』にする等が必要かもしれません。
sshを使って
ifconfig | grep broadcast
等でマシンのアドレスは取得出来ますが
AirMac経由の場合等
プライベートのアドレスが振られている環境の場合
wwwに接続しているアドレスが取得出来ないので
こんな方法を考えてみました。
safariを使うのが嫌な人は
シェルを使ってcurlで取得できます。
tell application "Finder"
set My_URL to "http://applescriptip.appspot.com/" as Unicode text
set OriginaltheIP to do shell script "curl -O /tmp/getIP.txt http://applescriptip.appspot.com/"
display dialog ¬
"IPアドレスが取得出来ました\nコピーして下さい。" default answer ¬
the OriginaltheIP with icon 1 with title "IPアドレスをコピーしてください"
end tell
「Getwwwip_curl.scpt.zip」をダウンロード[LINK]
「Getwwwip_curl.html」をダウンロード
コメント