IPアドレスが入らない!? at 2001.January 1. 背景  昔々、あるところにWin95とLinuxをネットワークで接続しようとした人がいました。  んで色々やってもダメでした(爆)  #pingも通らねぇだ。が、それはともかく  そこでネットワークのハードウェア障害なのかを切り分けるべく、次のような事を  しました。  あ。うちってWin95 OSR2.0、Win95 OSR2.1、TurboLinux 4.5であります。  (OSが古いって?ほっといて下さい![T_T])  a. ケーブルを交換   Linuxマシンで使用していたものをWindowsマシンに使用。Windows同士の   動作は正常。よってケーブルはOK  b. ハブのポートを交換   LinuxマシンとWindowsマシンのポートを交換。Windows同士は通信OK。よって   ポートも異常なし  c. Linuxマシンで使用しているLanカードをWindowsで使用してみる   結果的にOK。つまりLanカードも問題ない。よってH/W的にはOK  なんだけど、c.に異様に苦労したのでここではそれを書きます。  本当はc.ってしたくなかったのよね。何故かというとレジストリが汚れるから。  でもWindows上での動作を確認しないでカードの故障だ。と決め付けるのは酷すぎる  から。。。 2. 苦労した訳  Lanカードの説明書にある手順通りやると「ピポ」ということで正常認識。再起動  するとDHCPがどーのと言う。ここまではよく見かける光景。別に問題ない。  ところがネットワークを右クリックしてプロパティ。TCP/IPをダブルクリックすると……。  おぉ!?TCP/IPのプロパティが全部英語やん?  って、これは実は心当たりがある。MSのサイトからTCP/IP(とゆーかwinsock 2.0)の  アップグレードモジュールを取ってきて入れた過去があったから。  Windows98ならこれする必要はないんだけど、Windows95の場合はこれしないと  Seti@homeのコマンドライン版が動かない。…ってなことはおいておいて。  IP Addressタブを開いて:  (・) Obtain an IP address automatically  ( ) Specify an IP address    IP Address [ . . . ]    Subnet Mask [ . . . ]  作業としてはここでObtain...となっている選択をSpecify...の方に変えてIPを  入れるだけ。だったはずだが。何と!IP AddressとかSubnet Maskに文字が  入らない!!!  なっ!ぬぁんだとぉ!?そ、そんな馬鹿な〜!!(絶叫)  更にSpecify...の方にチェックを入れて[OK]しようとしても、IPアドレス入れなきゃ  だめ!とぬかしやがる。入力させてくれんのはてめぇだろぉ?とか思うのだが、  話し合いとかができる相手じゃないので諦める。  しかし。ここで諦めてHDDをfdiskして。。。とやるかと言うと、さすがにそれは  勘弁してよ。の世界。  方策として考えられるのは3つ。  1. winsock 2.0をアンインストールしてみる。が、その方法が分からないので断念。  2. いったんLanカードをレジストリレベルで削除し、再度PnPインストールする。   途中、TCP/IPモジュールで「より新しいバージョンがあるから上書きしない   方が吉」という宣言に全部'N'として上書き。バージョンダウンする。   それで先のプロパティが元に戻れば、作業ができる。winsock 2.0はその後で   また入れる。   が、「既にアップデート済みです」攻撃を喰らうと立ち直れなさそうなので断念。   この攻撃を喰らって再フォーマットした人、回りに居ません?私は必要に   迫られない限りMSのアップデートモジュールを適用しませんので、喰らった   ことありませんが。  3. レジストリを直接編集する。一番危なそうだって?いやいや。MSの「親切な」    インストーラにレジストリをぐちゃぐちゃにされるよりは、直接手を下した    方が安全・確実な場合があるのです。    でもお約束ですが、こーゆーことをしてマシンが再起不能になってもあたしゃ    知りません。 3. どこを書き換えるのか  先ずwinipcfg.exeで(Win9x標準添付)元から使っていたLANカードのIPアドレスを  調査。その結果である、"192.168.128.64"をRegEditで検索。  もしくはいきなりRegEdit.exeで"0.0.0.0"を検索しても良かったかも。  HKLM (HKEY_LOCAL_MACHINEの略)、System\CurrentControlSet\Services\  Class\NetTrans\0000  で、0000と0001と0002があるんで、どれが今回追加したLANカードの奴かを  見極める。大概は最後、つまり0002なんでしょうけど、うちの場合LANカードが  故障して入れ替えたりしてたので結局0001と判明。  #さらっと書いたけど、0001であることを突き止めるまで何度再起動したことか(泣)  HKDD下のレジストリからごそごそ追跡すりゃぁもっと早かったかも……(後の祭り)。  んで、そこに:  IPAddress "192.168.1.7"  IPMask "255.255.255.0"  NodeType "1"  とかあるから書き換える。ただし、次に注意:  IPAddressは他(ターゲットが0001とすれば、0000や0002のこと)と違う設定にする  こと。カードが無いから構わないだろうと、他と同じにすると動かない。  NodeTypeはDHCPを使うかどうか。という設定なので、今回は固定IPにしたいという  ことで、このキーを消す。 4. 再起動後、プロパティで設定を確認  Specify...の方にチェック入ってるけど、IP AddressやらSubnet Maskは空白。  でも[OK]しても文句言わない。  へーんだ。IPとかの確認はwinipcfgでやるからいーもんね〜。  ということでした。  winsockのアップデートって、普通はしない気がするし、まぁIPアドレスごときを  書き換えるのにレジストリを直接修正するってのも異常だとは思う。  が、まぁ。Windowsのこんちきしょう!ということでした(^^;; #winsock2のアップデータって、日本語版がもしかしてあった? (EOF)