エミュレータでパケットキャプチャ
2011-02-01-1 / カテゴリ: [command][network][Android] / [permlink]

ホストPCやサーバ側でキャプチャできない環境の場合、エミュ自身の内蔵tcpdumpでキャプチャ可能。
多分使う機会はホストがwindowsで、ホスト自身で動かしてるサーバへアクセスする際のキャプチャくらいかね。(リモートならEthereal使えば良し)

基本は
# tcpdump -s 0 -X port 80
など。

-s 0 は、未指定だとデフォルトキャプチャサイズが96bytesになり、キャプチャ漏れが発生するので、適当に指定すればよし。0指定だと65535byteになる。
-X は指定なしだと訓練されていないと読めない(笑)

port 80 の部分は、キャプチャのフィルタ条件。指定がないとidleでも結構パケットが飛んでいるので、見たいパケットが見えなくなる。
"port 80" で 80/TCP の全てのパケット
"host jp-z.jp" で、jp-z.jp との全パケット
"port 80 and host jp-z.jp" で↑のand

「コマンドラインじゃわからん!wiershark/etherealで見たいんだ!」な場合は
# tcpdump -s 0 -w /mnt/sdcard/capture.cap port 80
でキャプチャ結果をファイルへ出力できるので、DDMSのファイルエクスプローラで取り出して見ればOK
あとはググッてねん。

ちなみに停止の^Cで、シェルごとなぜか抜けてしまうので、PCのシェル(コマンドライン)上で
% adb -s emulator-5554 shell tcpdump -s 0 -w /mnt/sdcard/capture.cap port 80 and host jp-z.jp
とした方が良いかも知れん。


実機だとpermission deniedになる。うーん、rootな端末もあった方が良いのかも。

ネットワークバイトオーダへの変換
2006-03-13-1 / カテゴリ: [network][programming][c] / [permlink]

htonl ... long int htonl(long int hostLong) /* host to network long */
htons ... short int htons(short int hostLong) /* host to network short */
ntohl ... long int ntohl(long int netLong) /* network to host long */
ntohs ... short int ntohs(short int netLong) /* network to host short */
ようやく「読める」ようになった.
参考: TCP/IP ソケットプログラミング C言語編

:
struct sockaddr_in server;
:

:
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_port = htons(PORT);
:

ルーティングの表示・変更
2006-03-02-1 / カテゴリ: [win][command][network] / [permlink]

表示
> route print
または
> netstat -r
:
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1   192.168.1.100       20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.1.0    255.255.255.0    192.168.1.100   192.168.1.100       20
    192.168.1.100  255.255.255.255        127.0.0.1       127.0.0.1       20
    192.168.1.255  255.255.255.255    192.168.1.100   192.168.1.100       20
        224.0.0.0        240.0.0.0    192.168.1.100   192.168.1.100       20
  255.255.255.255  255.255.255.255    192.168.1.100   192.168.1.100       1
  255.255.255.255  255.255.255.255    192.168.1.100               3       1
Default Gateway:       192.168.1.1
===========================================================================
:

Destination: 172.26.0.0 / Netmask: 255.255.0.0 の Gateway を 192.168.1.1 として追加
> route add 172.26.0.0 mask 255.255.0.0 192.168.1.1

↑の Gateway を 10.0.0.1 に変更
> route change 172.26.0.0 mask 255.255.0.0 10.0.0.1

↑の設定を削除
> route delete 172.26.0.0

add と change は実際に経路がないと設定できないっぽい(XP SP2)

NetBIOS名の名前解決
2005-12-25-2 / カテゴリ: [win][command][network] / [permlink]

[2004-06-18]
って,中途半端にしか書いてない...(しかもリンク切れ)

http://www.atmarkit.co.jp/fwin2k/win2ktips/378findip/findip.html
> nbtstat -a cheddar
> nbtstat -c
で Go


(2006-03-03 追記)
オプション足らず…

dnsキャッシュのクリア
2005-12-25-1 / カテゴリ: [win][command][network] / [permlink]

書いてなかったのでメモ
> ipconfig /registerdns
DHCP の /renew も同時に行う.

iptables で特定条件のアクセスを別ポートにリダイレクト
2005-08-29-3 / カテゴリ: [linux][network] / [permlink]

アクセス元IP 10.0.0.1 からの 80/tcp へのアクセスを、8080/tcp へリダイレクトするには
# iptables -t nat -A PREROUTING -p tcp -s 10.0.0.1 --dport 80 -j REDIRECT --to 8080

このとき、アクセス元IP 10.0.0.1 の 8080/tcp も ACCEPT にしておく必要もある。(DROPではアクセスできない)

iptables -L で名前解決が遅い
2005-08-29-2 / カテゴリ: [linux][network] / [permlink]

-n をつければ名前解決しない。
netstat -n と同じやね。

stoneで穴掘り(より)
2005-08-25-1 / カテゴリ: [debian][network][SSL] / [permlink]

http://wiki.spc.gr.jp/tunnel/?DigByStone (stoneで穴掘り)

うぁー、ガッコの友達に(随分前に)教えてもらって試しに
(A) PC(winXP)

(B) 社外アクセス用proxyサーバ(一部の社内サーバにもアクセス可能)

(C) 社内サーバ
つー環境で、(C) を外部のサーバに見立ててやってみたら、見事に (A)->(C) の ssh がアクセスできた…。
あ、(A) の PC のネットワークは外部には全く出れず(名前解決もできない)、http(80,8080), https(443) のみ、(B) を proxy に Internet にアクセスできる、という環境です。で、(A), (B), (C) 全て異なるネットワークにいます。

ちなみに、(C) は debian sarge で、
# aptitude install stone
で、必要なものは揃う。

(A) の win 用の stone は http://www.gcd.org/sengoku/stone/Welcome.ja.html より。
「stone version 2.2e for Win32 OpenSSL 版パッケージ」をダウンロードし、適当なディレクトリに展開し、コマンドプロンプトから実行。

まぁ、ネットワークが違うので、実際に外部に出れるかはわかんないけどね。



05/08/29 追記
出れた :p

telnet コマンドの強制停止
2005-05-19-2 / カテゴリ: [command][network] / [permlink]

telnet 実行中に応答がなくなったとき
> ^]
で、telnet プロンプトに切り替わるので
> telnet> quit
すれば抜けれる(と良いなぁ)

SMTP メールのフォーマット (rfc2822)
2004-12-22-1 / カテゴリ: [unix][network][SMTP][メール] / [permlink]

本文の 1行は CRLF 除いて 998 文字以下(MUST) 78文字以下(SHOULD)
(2.1.1. Line Length Limits)
ヘッダは
ヘッダのフィールド名は printable US-ASCII(33 - 126), コロン
フィールドbodyは CR,LF を除く任意の US-ASCII
フィールドbodyが複数行にまたがる場合(folding)は、white space で始まる

linux で無線LAN
2004-11-17-1 / カテゴリ: [linux][network] / [permlink]

http://www.le.chiba-u.ac.jp/~aoyama/linux/cf-t2/
http://terasu.cntl.kyutech.ac.jp/~futikawa/linux/memo_wlan.html
必要なものは Windows 用ドライバ
ndiswrapper (debにある?)
wireless-tools (deb)

起動は
# iwconfig wlan0 essid "ESSID" key s:"WEPKEY"
# ifup wlan0

cookieの書式
2004-11-12-2 / カテゴリ: [network][HTTP] / [permlink]

Set-Cookie: NAME=値; expires=値; domain=値; path=値; secure
Perl の例
print "Set-Cookie: NAME=zzz; expires=Fri, 12-Nov-2004 19:45:41 JST;\n";

Firefox の例
.atmarkit.co.jp TRUE / FALSE 1131788193 LastVisit 1100252189

IPaddr の計算用モジュール
2004-11-01-3 / カテゴリ: [network][programming][perl] / [permlink]

http://search.cpan.org/~luismunoz/NetAddr-IP-3.21/
use NetAddr::IP ;
 
my $ip = new NetAddr::IP "192.168.175.4/255.255.255.128" ;
 
print "The address is ", $ip->addr, " with mask ", $ip->mask, "\n" ;
print "nw    is ", $ip->network,     "\n" ;
print "bc    is ", $ip->broadcast,   "\n" ;
print "range is ", $ip->range,       "\n" ;
print "first is ", $ip->first->addr, "\n" ;
print "last  is ", $ip->last->addr,  "\n" ;
print "mask  is ", $ip->masklen,     "\n" ;
print "num   is ", $ip->num,         "\n" ;
便利!

telnet で http
2004-11-01-2 / カテゴリ: [unix][linux][network][HTTP] / [permlink]

$ telnet serv 80
GET /path/file.html HTTP/1.0

ftp で Login failed したときの再接続
2004-07-29-2 / カテゴリ: [linux][unix][network][command] / [permlink]

ftp> user username
で、再ログインできる

ifconfig 無差別(promiscuous)プロミスキャスモード
2004-07-08-2 / カテゴリ: [linux][command][network] / [permlink]

有効にする
# ifconfig eth0 promisc
無効にする
# ifconfig eth0 -promisc

NetBIOS 名の名前解決
2004-06-18-1 / カテゴリ: [win][command][network] / [permlink]

TeraTerm + TTSSH で ssh ポートフォワーディング
2004-06-14-1 / カテゴリ: [network][win][ssh] / [permlink]

11:44 (zaki) 参考: http://www.media.hiroshima-u.ac.jp/manual/ttssh/portfwd.html
11:44 (zaki) まずは、TeraTermとTTSSHでsshが使えるようにしておく
11:44 (zaki) そのうえで
11:45 (zaki) [setup]->[SSH Forwarding]から
11:45 (zaki) Port Forwardingで[Add]
11:45 (zaki) Forward local port(上の方)にチェックをいれ、
11:46 (zaki) 上のポート番号は、ローカルマシンでLISTENするポートなので自分のマシンで使えるポートを指定(僕は26667/特に意味なし)
11:46 (zaki) 下の to remote machine に、RX-8のアドレス&ircのポート 46667を指定
11:46 (zaki) 入れたら、[OK]
11:47 (zaki) TTSSH: Forwarding Setupも[OK]で抜ける
11:47 (zaki) でもって、一旦[Setup]->[Save setup]でTERATERM.INIを保存する
11:48 (zaki) 最後に、[New connection]で、rx-8にSSH(port22)で普通にSSHログインする
11:48 (zaki) すると、ローカルマシンで26667(僕の場合)でLISTENするので、
11:49 (zaki) LimeChatの設定で、localhost:26667へアクセスする
11:49 (zaki) 以上

Net::Telnetモジュールのエラーハンドリング
2004-04-23-1 / カテゴリ: [programming][network][perl] / [permlink]

login()の失敗などは、デフォルトで 'die' を行っているため、他の処理を行い
たい(ログファイルにイベントを出力して終了とか)場合は、ErrMode を変更す
る必要がある。
(A) new する際に、Errmode を指定する
$a = Net::Telnet->new(Timeout => 10, Errmode => "return");
(B) new した後に、Errmode を変更する。
$a->errmode("return");
以上で、
$return = $telnet->login('user', 'pass');
が失敗した際は、$return は undef になる。(成功時はErrmodeに関係なく1)
カテゴリ: network / 1 2 次ページ

最終更新時間: 2013-05-02 16:12