IPアドレスからアクセス元のホストを取得する(nslookup)
はじめに
ウェブサイトなどでログをつけていると:
111.11.111.11
111.11.111.22
111.11.111.33
などのIPアドレスのリストを得ることがあります。このIPアドレスのリストからホストを取得し、アクセス元のおおよその国などを特定する方法を紹介します。
方法
Windowsのコマンドプロンプトのnslookupを使います。このコマンドのあとにIPアドレスを打つと:
nslookup 182.22.59.229
>サーバー: UnKnown
>Address: 111.111.1.1
>名前: f1.top.vip.ssk.yahoo.co.jp
>Address: 182.22.59.229
などのように「名前」というところにホスト名が記されます。ここにはプロバイダーの情報が表示されますが、これでおおよその国(.jpは日本, deはドイツなど)などの情報がわかります。
これをアドレスの一覧に対して行うにはバッチファイルを作成すればOKです。
エクセルでIPアドレスの一覧をコピペで入力し(「データ」から「重複の削除」をしておくとよいでしょう)、隣のセルに:"nslookup " & A1として下までコピーします(nslookupの後に半角スペースが必要です)。
これをテキストエディタに貼り付け、ip.batなどの名前で保存します。
その後、コマンドプロンプトからip.bat > result.txtのように実行すればテキストファイルとして一覧を取得できます。
Rにread.tableで2次元の表(分割表)を読み込む
データ
このようなデータをRにクリップボード経由で読み込むには、次のようなコマンドを打ちます。
data=read.table("clipboard",header=T)
この読み込みでは、Student, Eng, Kokugo, Mathという4つの変数からなる形で認識されています。これでは行に名前がない状態ですので、例えばこのデータを使って対応分析を行うことはできません。
対応策1:row.namesを指定する
row.names="Student"のオプションを加えることで、Studentの列を行名として認識させることができます。
対応策2:Studentの部分を空白にする
単純な方法としては1行目の第1列を空行しておくと、Rがその列を列名として認識してくれます。
Rのデータ入力:read.tableによるテーブルヘッダーの読み込み
ヘッダーにXがつく現象
Rにデータをロードするには、clipboardから読み込むのが楽です。
このデータをクリップボードにコピーして:
data=read.table("clipboard",header=T)
で読み込めます。しかしながら、オブジェクトをロードすると次のようにヘッダーの名前がおかしくなります。
これはヘッダーを数値として読み込んでいるからですが、この現象を回避するには次の形で対処できます。
> data=read.table("clipboard",header=T, check.names=F)
ただし、この場合、各行に$を使ってアクセスするには、変数名をクォーテーションマークで囲む必要があります。
[参照記事]
対応分析(コレスポンデンス分析)のラベルのはみだしをWordで調整する
はじめに
Rで対応分析などを行ってplotすると、ラベルの端が切れてしまうことがあります。そのときの対処法のメモ。
現象
次のような現象が今回の処理の対象です。
対応方法
Rのコマンド例:
library(MASS)
plot(corresp(jikken,nf=5))
(1)plot後、右クリックをして「メタファイルにコピー」
※ビットマップではだめです。
(2)Wordの貼り付け
(3)図を右クリックして、「図の編集」
そうすると、後ろに隠れていた部分が見えるようになります(原理は不明ですが、おそらく編集するためにすべてを可視化するのかもしれません)。
※図が「前面」に変更されてしまいますので、図を選択して「文字列の折り返し」から「四角」や「行内」など望むものを選んでください。
Gmailで添付ファイルのダウンロードが失敗する場合の対処法
はじめに
gmailで添付ファイルが送られてきてChrome等のブラウザからダウンロードしようとすると、「失敗―ダウンロード エラー」となることがあります。
ブラウザを変えても、キャッシュを削除してもうまくいかない場合の対処法を書いておきます。
解決策:ファイル名を変更する
解決策は、「ファイル名を変更する」ということです。アルファベットなどの単純なファイル名にしてダウンロードすれば、エラーは回避されます。
原因は?
この原因はOS間の「ユニコードの正規化の違い」のようです。
「ダ」「ポ」「グ」などの文字列は、一文字(ダ)として表現される場合と結合文字(タ+濁点)として表現される場合があります。このずれによりファイル名を認識できないというのが原因と考えられます。
参考:Unicodeの特殊な文字 “結合文字列” | ものかの
例えばMacで「ダウンロード.pdf」というファイルを作り、Windowsでダウンロードしようとするとおそらく失敗します(再現していませんが)。
まとめ
- 添付ファイルのダウンロードを失敗した場合、「ファイル名」を変えてみる(アルファベットのみ推奨)
- OS間の違いを考えると、ファイルはアルファベットで命名するのが無難