Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

アプリケーションの追加と削除@RHEL5

RHEL5からはパッケージ管理のフロントエンドがyumになってしまったため、リポジトリの設定を行わないとCDやDVDからアプリケーションの追加や削除ができません。 RHELのDVDをリポジトリとして設定するには、以下のように行います。

まず、/mnt/dvd にDVDがマウントされているとします。この時/etc/yum.repo.d/にrhel-dvd.repoというファイルを作成し、以下のように記述します。

[RHEL5 DVD]
name=RHEL5 DVD
baseurl=file:///mnt/dvd/Server
enabled=1
gpgcheck=0

以上でアプリケーションの追加と削除を選ぶと、インストールしていないrpmも表示されます。

なお DVDではなくCDの場合、1枚目を使用します。 1枚目のCDにすべてのCDに入っているRPMの情報が入っているので、検索・参照はできますが2枚目以降のRPMはインストールはできません。また下記の追記のように、メディアから直接インストールするには少し手順が必要になります。

追記 (2008/4/10) この設定でyumコマンドを使って、rpmファイルを検索することはできますが、いざインストールしようとするとエラーになってしまいます。原因はDVDの中に入っている情報(repomd.xml)で、RPMの取得先が固定されているからです。そのため、RHEL5のDVDから直接インストールするには、createrepoコマンドを使って、リポジトリの情報を作成してあげる必要があります。もちろんDVDは読み込み専用なので、リポジトリ情報はローカルのハードディスク上に作成し、rhel-dvd.repoのbaseurlをこの新しい情報に変更してあげる必要があります。

PS3のハードディスク交換にあたって

PS3 20GBモデルはハードディスク容量がそのうち不足するだろうから、そのうち交換しようと考えているので下調べ。

基本的に交換できるのは2.5インチのSATA HDD。PS3との相性問題とかあるのかなぁって考えていろいろ調べてみたけど、相性問題で動かなかったって情報はみつからなかったので、大体動きそうですね。

名前ベースのVirtualHost

今までapacheを名前ベース(NameVirtualHost)をエラーが出たまま使ってたので、ちゃんと調べてみた。

例えばport 8080でVirtualHostを使いたい場合以下のようになります。

NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "/var/www/mazn"
ServerName www.abcd.com
ServerAdmin webmaster@localhost
ErrorLog /var/log/apache2/error.log
TransferLog /var/log/apache2/saccess.log
ServerAlias www.efgh.com
</VirtualHost>

これでwww.abcd.comにアクセスした場合、/var/www/mazn/ のドキュメントが表示されるようになります。またServerAliasでwww.efgh.comが設定されているので、www.efgh.comへアクセスした場合も同じものが表示されます。

複数のVirtualHostを書いた場合、一番上に書いた物が優先され、どれにもマッチしない場合も一番上のVirtualHostが表示されます。

システム上のユーザ一覧情報の取得

NISやLDAPなどを使用していると、きちんとと設定されているのか、誰が認証できるのかなどを知りたい時があります。こういうときは "getent" コマンドを使用します。

# getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
…
mazn:x:555:

このようにユーザ一覧などの情報が取得できます。これ以外にも"group" や"hosts"、"services"なども調べることができます。詳しくはmanを参照してください。

IPv6試してみました @ RHEL5

自分自身は表す(ipv4では127.0.0.1) 方法は、

::1

だそうです。ipv6の基本中の基本か?

IPv6版pngは-Iで送信するインタフェースを指定しなければなりません。 ※::1の時はいらないです

$ ping6  ipv6アドレス -I eth0

sshでは以下のようにインタフェースを指定します

$ ssh アドレス%eth0

ipv6知っている人にとっては超常識なんだろーな。

sshでのXフォワーディング@RHEL5

sshって-XオプションつけるとXフォワーディングしてくれるんですね。

昔puttyとかteratermとか使ってたときはやってたけど、最近VNCばかりでX飛ばすことないから知りませんでした。

Linuxのinitrd - イニシャルラムディスク(initial ram disk)の展開方法

Linuxカーネルはモジュール型であるため、Linux起動時に必要なモジュールはinitrdの中に入れておかなければなりません。initrdとは/boot/initrd-2.6.18.img のようなファイルで、mkinitrdコマンドで作成できます。

このファイル、実はcpioでまとめられ、gzipで圧縮されているだけです。なので以下のようにすることで展開できます。

# cd /tmp/
# zcat /boot/initrd-2.6.18.img | cpio -di

中のファイルが見たいだけの場合は以下の通りです。

# zcat /boot/initrd-2.6.18.img | cpio -tv

中身を見てもらえるとわかりますが、モジュール(.koファイル)やinsmodコマンドなど、最低限必要なものが入っています。

パスワードの有効期限と、アカウント有効期限@RHEL5

パスワードのデフォルト有効期限は "/etc/login.defs"で設定できます。他にも、パスワードの長さやメールスプールディレクトリなども設定できます。

ユーザのアカウント有効期限は"chage"コマンドで設定できます。

# chage -E 2008-03-15 mazn

ちなみに -Eで"1970-01-01"を指定するとロック、"1969-12-30"を指定すると解除になります。

ACL - Access Control List @ RHEL5

ACL (Access Control List) とはファイルシステムの機能で、その名の通りファイルやディレクトリへのアクセス制御を行うことができます。ちなみにカーネル2.6から使用できるようです。

通常"ls -l" で表示させた時に "rwxrw-rw-" のように自分、グループ、その他についてのアクセス制御が設定されていますが、例外としてこのユーザだけ読み書きさせたいとか、このグループだけ読みこみ専用にしたなどを実現させることができます。

まずaclを使用するには、そのファイルシステム(ここではext3)がaclが使えるようになっていなければなりません。RHEL5のインストーラで作成したパーティションは、ファイルシステムレベルで有効になっていますが、後から自分で作成したファイルシステムはデフォルトでは有効になっていません。有効にする方法はファイルシステムレベルか、マウント時のオプションで指定できます。

まず、ファイルシステムレベルで有効になっているかどうかは、以下のコマンドで確認できます。

(例) /dev/sda1を確認
[root@localhost tmp]# tune2fs -l /dev/sda1
tune2fs 1.39 (29-May-2006)
Filesystem volume name:   /boot
Last mounted on:          <not available>
Filesystem UUID:          16267cf2-e233-472c-9c5f-d832bd24xxxx
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
… 略 …

マウントオプションで有効になっている場合は以下のように確認できます。

[root@localhost tmp]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
… 省略 …
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /opt type ext3 (rw,acl)

有効になっていない場合は、tune2fsコマンドでファイルシステムレベルで有効にするか、fstabに記述してmountオプションで有効にしてください。

(例)
# mount -o remount,acl /dev/sdb1

使用方法はそれほど難しくありません。

まずはhogeというファイルの現在のACLの状態を見てみます。

[root@localhost tmp]# getfacl hoge
# file: hoge
# owner: root
# group: root
user::rw-
group::r--
other::r--

下3行の赤文字部分が現在の設定部分です。"ls -l" で表示させた権限と同じものです。

[root@localhost tmp]# ls -l hoge
-rw-r--r-- 1 root root 0  1月  4 12:22 hoge

つまり、特別なACLは何も設定されていません。この"hoge"ファイルにユーザmaznは読み書きできるように設定してみます。設定は"setfacl"コマンドで行います。

[root@localhost tmp]# setfacl -m u:mazn:rw- hoge
[root@localhost tmp]# getfacl hoge
# file: hoge
# owner: root
# group: root
user::rw-
user:mazn:rw-
group::r--
mask::rw-
other::r--

以上のようになり、ユーザmaznはこのファイルを読み書きできるようになります。"-m"が属性設定オプションで "u"がユーザを指定":"で繋いで、"mazn"がユーザ名、さらに":"で繋いで"rw-"がアクセス権です。"u"の代わりに"g"を使うことでグループの権限を設定できます。このように、ACLが設定されると、"ls -l"でファイルを見たときに属性に"+"がつきます。

 [root@localhost tmp]# ls -l hoge
-rw-rw-r--+ 1 root root 0  1月  4 12:22 hoge

ディレクトリにも同様に設定できます。ディレクトリの場合はさらに "u"や"g"の前に"d:"をつけることができます。"d"をつけるとそのディレクトリ配下に新しく作成されるファイルやディレクトリの属性のデフォルト値になります。一つでもデフォルト値を設定すると、その他のデフォルト値も自動的に設定されます。

[root@localhost tmp]# mkdir foo
[root@localhost tmp]# setfacl -m d:u:mazn:rwx foo
[root@localhost tmp]# getfacl foo
# file: foo
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:mazn:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

"-x"オプションを使用すると、権限を削除できます。

[root@localhost tmp]# setfacl -x u:mazn hoge

"mv"コマンドで移動しても属性は変わりませんが、cpコマンドでは削除されます。cpコマンドで属性までコピーしたい場合は、"-p"オプションを使用してください。mvコマンドでACLが有効なファイルシステムから無効なファイルシステムへ移動した場合、ファイルは移動できますが、ACLの属性がコピーできないため、エラーメッセージが出力されますので注意してください。

DLNAサーバ TVersity

PS3はDLNAクライアント機能があるため、ネットワーク上にある音楽や動画を再生することができます。そこで、WindowsにDLNAサーバであるTVersityをいれてみました。

インストール等は特に何も考えなくて行えます。maznの環境にはWindowsだけでなくLAN内にあるLinuxサーバに音楽が置いてあり、これをSambaで共有しています。TVersityはデフォルトではアクセス権限が制限されたユーザで起動されるため、Samba上のファイルにはアクセスできません。これは以下のように設定することで回避できます。

  1. コントロールパネル→管理ツール→ サービス を起動
  2. TVersityMediaServerをダブルクリック
  3. ログオンのタブでアカウントをチェックし、ネットワークドライブにアクセスできるアカウントを 入力
  4. TVersityを再起動

参考 http://www.tversity.com/support/faq#network-share-faq

== 追記 ==

MP3のタグをPS3上で見ると文字化けします。どうやらタグはUnicodeにすると文字化けしないようです。

== 追記2 2008/5/11 ==

同じフォルダ名のフォルダ (c:\bar と d:\bar のように) を共有しようとすると共有できませんでした。片方のフォルダ名を変える必要がありそうです。

お手軽リモコンヘリ ハニービー

小さな頃、川の土手でリモコンのヘリや飛行機を飛ばしているのを見ていつかやってみたいなぁって思って早数十年。時代は進化するもので数千円でリモコンヘリが購入できる時代になってしまいました。 といっても室内用の小さいやつですが。

数種類あるようですが、私はハニービーを買いました。3000円ぐらいです。

ネットで事前に情報を見てて、初心者でもすぐに飛ばせるというだけあって結構簡単です。でも床から直接離陸させようとすると回転してすぐに転倒しちゃいます。なので今は手で持って離陸させてます。

2chしかないので、上下と左右しか操作できません。そのうちもっとお高いやつが欲しくなりそうだ。

ブラウザ上でのWYSIWYG HTMLエディター

このサイトで使用しているWordPressでも記事作成するときに使用しているようなWYSIWYGのHTMLエディターを自分のWebアプリに組み込もうとしてみた。

まずどのようなHTMLがあるか調べてみたところ、以下の物を発見。

一番上のfckeditorをまずは使ってみたので、メモ。 ※事前にApacheやIISといったWebサーバを用意しておいてください

fckeditorのzipファイルをダウンロードし、zipファイル を展開。展開してできたディレクトリを"fckeditor"というディレクトリ名でWebサーバに配置。 次にエディタを表示させるhtmlファイル(index.html)を以下のように記述。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script type="text/javascript">
      window.onload = function()
      {
        var oFCKeditor = new FCKeditor( 'mytext' ) ;
        oFCKeditor.BasePath = "fckeditor/" ;
        oFCKeditor.ReplaceTextarea() ;
      }
</script>
<title>fckeditor</title>
</head>
<body>
fckeditor
<br>
<textarea id="mytext" rows="50" cols="40"></textarea>
</body>
</html>

ここで、

var oFCKeditor = new FCKeditor( 'mytext' ) ;

の'mytext' と

<textarea id="mytext" rows="50" cols="40"></textarea>

の"mytext"を合わせることで、テキストエリアをHTMLエディタに切り替えることができます。

fckeditorとhtmlファイルの配置は以下の通り。

/ - index.html
  - fckeditor/ - fckconfig.js
               - fckeditor.js
               -  ・・・・・ いろいろなファイルやディレクトリ

あとはWebブラウザでこのhtmlファイルにアクセスすればOK。エディタとしての機能は充実していて、使いやすそうだがちょっと動作が重たい気がします。

VARDIA RD-S601

このページへのアクセスが多いので、その後のレポートにリンクを張っておきます

東芝のHDD/DVDレコーダ RD-S601を購入しました。もちろんこの機種を選んだ理由はパソコンの連携ができるからです。

まずはリモートへの動画転送。最初はネットdeダビング機能を使って転送しようとしたが、DLNAに対応しているとのことでRDLNAというソフトを使って簡単に転送できました。

次にメールでの予約。Docomoのこのiアプリを使うことでこれも素直に実現。いくぶん便利にはなるのですが、チャンネル名がわからなかったり、その他オプションのデフォルト値を設定できなかったりとあまり満足のいくものではありません。いずれWebベースのツールを作ろうかな。

RDのWebサーバに アクセスすれば、予約やら録画の確認などいろいろできますが、このポートをインターネットにそのまま公開するのは恐いので、インターネット経由でのアクセス用にはapacheのproxy機能を使用してhttpsで実現。これでパスワードを平文で流さなくてすみます。プロキシ部分の設定はこんな感じ。

UseCanonicalName on
ProxyRequests Off
<Proxy *>
   Order deny,allow
   Allow from all
</Proxy>
ProxyPass / http://192.168.1.4:80/
ProxyPassReverse / http://192.168.1.4:80/

最初は以下のように階層を掘って(hogeの部分 VARDIAに転送していましたが、

ProxyPass /hoge/ http://192.168.1.4:80/
ProxyPassReverse /hoge/ http://192.168.1.4:80/

VARDIAが出力するHTMLに絶対リンクがあるため、うまく動きませんでした。よって、新しくダイナミックDNSでDNS名を取得し、名前ベースのVIrtualHostを使ってサーバ名直下で運用することでうまくいきました。ただし、ネットdeモニターのようにJAVAでサーバに直接接続しにいく機能は使えないようです。

これでインターネットからいつでもVARDIAにアクセスできるようになったのですが、VARDIAの電源がOFFの場合はWebサーバにアクセスできません。よってリモートからVARDIAの電源をWOLでONにするスクリプトを記述して自宅サーバに設置。内容は以下のようにいたって簡単なものです。

 <?php
        echo "RD WOL<BR>\n";
        $a = exec("/usr/bin/wakeonlan 00:xx:xx:xx:xx:xx");
        echo $a;
        echo "<BR>\n";
?>

今回はPHPで記述しました。これをApacheに設置して、携帯などからURLを叩けば電源を入れることができます。

ちなみにwakeonlanというコマンド(Debianではapt-getでインストールできた)でWOLのパケットが投げられ、電源をONにします。 00:xx:xx:… はVARDIAのMACアドレスです。

さて、これで電源ONもリモート操作できるようになったのですが、VARDIAの起動は時間がかかるし、内部処理中(□が表示窓に表示されている)の場合はなぜかONにできないため、遠隔にいると状態がわかりません。なので、以下のスクリプトを書いて設置しました。

<?php
        echo "Ping<BR>\n";
        $a = exec(" ping -c 1 192.168.1.4 | grep icmp_seq");
        echo $a;
        echo "<BR>\n";
        echo "TCP Port 80 Scan<BR>\n";
        $a = exec("/usr/bin/nmap -sT 192.168.1.4 -p 80 | /bin/egrep open");
        echo $a;
        echo "<BR>\ndone";
?>

これで、pingでネットワークを確認、nmapでポート80が空いているかが確認できます。

ひとまずはこれで設定終

Ctrl-Sの端末ロックを無効にする

bashではCtrl-Sを入力してしまうと端末がロックされた状態になり何も受け付けなくなります。Ctrl-Qで解除できるが、普段ロックすることないしいらいらするから、無効にする方法を調べてみた。

方法はいたって簡単で

# stty stop undef

でOK。常に有効にしたい場合は.bashrcなどにどーぞ。

Ctrl-Rはreverse-i-searchでコマンド入力履歴をさかのぼって検索できますが、たまに行き過ぎて戻りたくなることがあります。上記の設定でCtrl-Sのロックを無効にすることでi-searchができるようになり、戻ることができます。

ちなみに、Ctrl-Cで実行中のプログラムを止めるのもこのsttyで無効にできます。どのような機能が定義されているかは"stty -a"コマンドでわかります。

$ stty -a
speed 38400 baud; rows 50; columns 127; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q;
stop = <undef>; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke

各単語の意味は以下の通り。

intr   割り込み (interrupt) シグナルを送る。
quit   終了 (quit) シグナルを送る。
erase  最後にタイプされた文字を消去する。
kill   現在の行を消去する。
eof    ファイル終了 (end of file) を知らせる (入力を終了する)。
eol    行末 (end of the line)。
eol2 (np)
       行末を表す別の文字
swtch (np)
       別のシェル層 (shell layer) にスイッチする。
start  停止している出力を再開する。
stop   出力を停止する。
susp   端末に停止 (stop) シグナルを送る。
dsusp (np)
       入力をフラッシュしてから端末に停止 (stop) シグナルを送る。
rprnt (np)
       現在の行を再表示する。
werase (np)
       最後にタイプされた単語 (word) を消去する。
lnext (np)
       次にタイプされる文字を (特殊文字であっても) そのままの文字として受け取る。

2009/11/2 追記

上記設定が原因のようで、上記サーバに対して、scpコマンドでファイルをコピーすると標準入力が不正という旨のエラーが発生しました。

ゲストOSの時刻同期@VMware + adjtimeでの調整

Windows上のVMware ServerでゲストOSとしてLinux (Debian etch)を動かしていますが、このLinuxの時刻があり得ないぐらいずれてしまいます。以前はカーネルのbootオプションに

clock=pit

をつけることでなんとか時刻を保持できていたが、ハードを更改するとこのオプションをつけてもずれが激しい。どうもIntelのCeleronからAMDのAthlon X2に変更したのが原因のよう。

Athlon X2のコア同士のTSCのずれがあるらしく、AMDのDual Core Optimizerを入れるとかなり正常に近づき、NTPで同期できるようになった。

 # ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp.xx.xxxxxxx. .GPS.            1 u    - 1024  377   15.990  -59.864  30.723

== 追記 2008/8/17  ==

上記方法で一応ntpで補正できる範囲にはなったが、それでも誤差が大きいらしく、ずっと以下のログが出力されてしまします。

Aug 10 09:45:09 gin ntpd[3554]: time reset -2.491515 s
Aug 10 09:45:09 gin ntpd[3554]: frequency error -512 PPM exceeds tolerance 500 PPM

上記のようなログが20分おきぐらいに出力されるので、私の環境では、20分に2~3秒ぐらいずれていて(マイナスはローカルがntpより早い)、ntpサーバへのポーリングタイムが64秒より長くなりません。なので、adjtimeを使用して調整することにしました。adjtimeはハードウェアクロックの精度が悪い時にその誤差を調整するもので、今回ぐらいの誤差ならば調整できそうです。

まずはapt-get コマンドでコマンドをインストールします。

# apt-get install adjtimex

adjtimeで補正する誤差を計算します。以下のように計測しました。

# /etc/init.d/ntp stop
# ntpdate -b ntp.nc.u-tokyo.ac.jp; sleep 180; ntpdate -b ntp.nc.u-tokyo.ac.jp
17 Aug 01:04:33 ntpdate[19824]: step time server 130.69.251.23 offset -0.176401 sec
17 Aug 01:07:33 ntpdate[19830]: step time server 130.69.251.23 offset -0.419513 sec

ここでは東大のntpサーバを使用しています。最初に時計を合わせて、180秒(3分)待って、さらに合わせます。この時のずれが-0.419513秒(offsetの値)つまり、0.41953秒早く進んでいます。3分で0.42秒、つまり20分で2.8秒のため、上記でかいた20分で2~3秒というログと辻褄があいます。もっと正確に検出したいならば、sleepの値をのばしたり、何回も測定して平均を計算するとよいと思います。

上記結果より、1日当たりの誤差を計算します。私の環境では数回の計測と計算の結果、1日で、-196.19856秒としました。

この値を /etc/default/adjtimex に設定してあげます。このファイルの設定値は秒ではなく、TICKとFREQで設定します。

1TICK=6553600FREQ  で、+1TICK=8.64 秒/日 早く進むらしいので、196.19856秒遅く時計を進ませるためには、-196.19856/8.64=-22.70 となる。TICKは10000で誤差なしということらしいので、小数点を無視して、TICK=10000-23=99977, FREQ=0を設定することにしました。

TICK=99977
FREQ=0

これでadjtimeで、上記設定を有効にします。

# /etc/init.d/adjtimex start

以上で、誤差がかなり少なくなりましたがまだ誤差があったので(そもそもsleep 180が正確でないので)、最終的には"99971"にしました。vmwareは誤差が大きいので、ntpは起動しておきましょう。

# /etc/init.d/ntp start

== 追記 2009/4/26  ==

vmwareの時刻補正機能とNTPを同時に動かしていると時刻修正機能がバッティングしてしまいます。maznはNTPを止めて、 vmwareで補正するように変更しました。ただしホストOSは時刻が正確であることが前提です。

あと、以下のコマンドで最適なtickを計算してくれるようです。

# adjtimex --compare
                                      --- current ---   -- suggested --
cmos time     system-cmos  error_ppm   tick      freq    tick      freq
1240719539      -0.625205
1240719549      -0.634765     -956.0   9990   4000000
1240719559      -0.643681     -891.6   9990   4000000    9999   3446719
1240719569      -0.651886     -820.5   9990   4000000    9998   5345630
1240719579      -0.659008     -712.3   9990   4000000    9997   4803917
1240719589      -0.668480     -947.2   9990   4000000   10000    536868
1240719599      -0.677599     -911.9   9990   4000000    9999   4782655
1240719609      -0.687442     -984.3   9990   4000000   10000   2968118

suggestedのtickとfreqを設定するのがよいとは思いますが、vmware上では安定しないようなので、これらの平均を設定するのがよさそうです。

Date型@EntityBean

EntityBeanからDate型にマッピングしたデータを取り出した場合、java.util.Dateではなく、java.sql.Date型でマッピングされます。そのため、toString()を呼び出した場合、日時の表示形式が異なります。

Date型ってmonthは0~11で指定するんだね。Javadoc見ればすぐわかるんだろうけど、はまってしまった。

sendip

ネットワークのテストをしたいとき、任意のパケットを送出したい場合があります。Windowsの場合はipsendwinや、Linuxの場合はsendipといったツールがあるようです。

ipsendwinを使用してみたところ、MACアドレスからTCPやUDP, ICMPなどのパケットの内容をいろいろといじることができました。しかし、あまりに変なパケットだとドライバではじいているのか、パケットがネットワークインタフェースから出ていかないこともありました。

このブログについて
プライバシーポリシー・お問い合わせ等
購読する(RSS)
記事検索
アーカイブ
カテゴリー
  • ライブドアブログ