Wiresharkでパケットを検索する方法

目安時間:約 4分

最近WireSharkを使用することが多くなってきた。

 

地図を載せた組み込み系のソフトから、

 

正しく地図情報が送られてきているかの確認に使用することが多い。

 

WireSharkとは

 

WireSharkは高機能なパケット取得・プロトコル解析ソフトで、

 

ネットワークに流れるパケット情報をリアルタイムで調査することが可能だ。

 

ネットワークエンジニアには必須のツールであるといえる。

 

※最も私はネットワークエンジニアではないが

 

 

WireSharkは以下からインストールすることができる。

 

https://www.wireshark.org/download.html

 

 

インストール時に特に困ることはなかった(と思う)。

 

 

起動すると、キャプチャしたいインタフェースを聞かれるので、

 

ダブルクリックして起動する。

 

 

キャプチャを開始すると、メイン画面に次々とパケットが表示される。

 

フィルタリング

 

たくさんのパケットが次から次へ流れてくるため、

 

フィルタしないと見づらい。

 

そこで、下記の表示フィルタに検索条件を入力して絞り込む。

 

 

 

IPを指定して検索

 

たいてい、確認したいパケットの

 

SourceのIPやDestinationのIPが分かっていると思うので、

 

それらを指定して検索。

 

 

 

ポートを指定して検索

 

これもかなり使う。

 

指定したポートで通信できているかを確認するときに使う。

 

 

 

TCP制御フラグを指定して検索

 

地味に使うことが多い。

 

SYNが飛んでいるのか、ACKが返ってきているのかなど、

 

疎通確認時に有効。

 

 

以上です。

タグ: 

カテゴリ:TCP/IP  [コメント:0]

【メモ】C++からC言語を呼び出すための方法

目安時間:約 2分

C++で書いているけど、Cのソースコードを読み込みたいときがある。

 

しかし、普通にC++からCの関数を呼び出すと、

 

というエラーになってしまう。

 

 

調べてみると、C++コンパイラは、マングル(mangle)と呼ばれる仕組みがあり、

 

オーバーロードの実現のためなどに、引数の型やクラス・名前空間名を使って

 

修飾された一意の名前を作成して、引き当てに使っているらしい。

 

しかしCコンパイラはマングリングしないため、

 

マングル前の素の名前になっている。

 

それで引き当てに失敗してしまうということだ。

 

対策としては、C++コンパイラに対して、

 

Cの関数であることを明示し、マングリングしないようにさせる必要がある。

 

 

そのためには、以下のようにするだけで、Cのソースコードを利用できるようになる。

 

 

いいね!

 

■参考

http://www.wagavulin.jp/entry/2017/02/09/215036

 

カテゴリ:C++  [コメント:0]

どうやら出向することになりそうだ

目安時間:約 2分

自分は英語が大っ嫌いだ。

 

なぜ嫌いなのかは自分でもわからない。

 

新しいプログラム言語を覚えることはとても楽しいのに、

 

新しい英単語や文法を覚えるのは大っ嫌いだ。

 

 

これまで英語にできるだけ関わらないように生きてきた。

 

大学時代も最低限しかやってこなかった。

 

社会人になってもほとんど英語を使うことなくやってきた。

 

使うとしてもgoogle翻訳にすぐ頼って生きてきた。

 

そんな自分が英語メインの会社に出向することになってしまった。。。

 

 

こればっかりはサラリーマンなので、拒否することはできない。

 

ならばいっそ、このタイミングで英語を習得し、

 

英語ができる意識高い系の人間になればいいのではないか?

 

そうだ、英語をやろう!!

 

ということで、英語を頑張ることにした。

 

 

タグ:

カテゴリ:英語  [コメント:0]

QGIS3.0 プロキシの設定について

目安時間:約 4分

恥ずかしながら、最近になってようやくQGISを使い始めた。

 

他の部署ではよく使っていたようだが、

 

私のいる部署はシステム部署なので、

 

内製のビューワーがあり、QGISなんて使うより、

 

内製で作ったビューワーのほうが便利だと思って(信じて)

 

あえてQGISを使わずに生活してきた。

 

しかし、最近Shape形式のファイルや、GeoJSON形式のファイルを手に入れたときに、

 

ささっとビューワーで見て、ささっと編集したいと思うのだが、

 

内製のビューワーでは、スクリプトを書く必要があったので、

 

もっと簡単にできないかと思ったらQGISにたどり着いていた。

 

 

たまには他のビューワーの機能もみてみて、

 

それを内製のビューワーに生かすのもいいなぁとも思ったので、

 

QGIS3.0をWindowsインストールして、軽く使ってみることにした。

 

 

その結果、めちゃめちゃ便利でびっくりした。

 

なんということでしょう。

 

「レイヤ」→「レイヤの追加」→「ベクタレイヤの追加」で

 

ファイルを選択するだけで、

 

勝手に拡張子を判断して、勝手に座標が入っているカラムを判断して、

 

画面上にベクトル地図が表示されるではありませんか!!

 

 

QGISやるな。。。と認めざるを得ない。。。

 

 

さらにOpenStreetMapのラスターも背景に表示できるようで、

 

試してみたが、会社の環境では表示されなかった。

 

こういう時はたいていプロキシである。

 

プロキシの設定

 

プロキシの設定をしてみた。

 

「設定」→「オプション」

 

 

こちらに適切な値を入力。

 

これでベクターも表示できるようになると思います。

 

 

QGIS便利だなぁ。これが無料で提供されているとか、どゆこと!?

 

さらにpythonでプラグインを追加できる模様。

 

これはやるしかない。

 

今後QGISの記事を書いていくかもしれません。

 

タグ: 

カテゴリ:QGIS  [コメント:0]

2点間の距離(ヒュベニの公式)

目安時間:約 2分

地図を扱っていると、2点間の距離を計算することがよくある。

 

平面上での2点間の距離は、学生時代に数学で習った式で計算することができる。

 

ただ、それでは正確な距離とは言えない。

 

 

地球の丸みを考慮した距離を計算したいときにはどうすればよいか。

 

方法はたくさんあるが、最も簡単でそれなりの精度が計算できる、

 

ヒュベニ(Hubeny)の公式を用いることが多い。

 

詳細な計算式や概念は他のサイトを探せばたくさん見つかるため

 

ここでは割愛させていただく。

 

例えば以下のサイトはとても分かりやすい。

 

二地点の緯度・経度からその距離を計算する

 

参考サイトではJavaの実装が書かれていたが、

 

私はC++を使っているため、C++でHubenyクラスを作成した。

 

 

 

使い方は簡単である。

 

 

 

計算すると以下の値となり、参考サイトと同じ値となった。

 

 

今度時間があればヒュベニ(Hubeny)以外の計算も試してみたいところ。

 

ページの先頭へ