C#でFTPクライアントプログラムを書いてます。.NETFrameworkのクラスライブラリは、ネット周りの機能がわりと充実しているんですが、なぜかFTPクラスはないんですよね。で、しかたなくソケット(Socketクラス)を使って書いているわけです。ホスト名からDNSクラスで得たIPAddressとポートからIPEndPointを作ってサーバーに接続し、あとはコマンドを送信していくのですが、困ったのが「PORT」コマンドで送る「自分自身のIPアドレス」の取得。

DNSクラスのGetHostName()メソッドでローカルマシンのホスト名を取得できる……はずなのですが、試してみると「マシン名」が帰ってくるのです。当然、これから「ローカルマシンのネットワークカードのIP」を取得することはできません。他にローカルマシンのIP取得する手はないかと調べてみたのですが、見つけられず……。まあ、Win32API使う、という手はありますがw



しかたなく今回はパッシブモード(PASV)専用にしましたが、他のプログラムでも使うでしょうし、何とか自分のIPは取れるようにしておきたいところ。

2005 07/31 19:14:40 | none | Comment(0)
Powerd by バンコム ブログ バニー

この記事へのコメント

この記事にコメントする

名前:
メールアドレス:
URL:
セキュリティコード  
※セキュリティコードとは不正アクセスを防ぐためのものです。
画像を読み取り、入力して下さい。

コメント:
タグ挿入

サイズ
タグ一覧
Smile挿入 Smile一覧