68user's page 掲示板

Prev< No. 757〜765> Next  [最新発言に戻る] [過去ログ一覧]
No. 757 # へにか [URL] 2000/02/27 (日) 20:12
68user様;
どうも御教授、ありがとうございます。
現在、示して頂いたスクリプトを理解しようと勉強しています。しかし、
理解した上で改造するまでに、ちょっと時間がかかりそうなので(※)、
先にお礼を申し上げます。
※ ->とか、selectとかの概念がまだ無いので、アルゴリズムがまだ
        理解できずに停止しています。
また、進捗があったら、ご報告します。本当にありがとうございます。

# http://X68000.startshop.co.jp/~68user/tmp/bogus-proxy.pl は、
# ひょっとして、僕の質問のために作って頂いたものですか?
# だとしたら、大感激です! ←違っていたらすいません。

Yuuki様;
どうも貴重な情報、ありがとうございます。
早速ダウンロードして、68userさんのecho.plを実行したら、とりあえずforkは
するみたいなのですが、残念なことに、forkしたとたんに、子プロセスが一般保護
違反を起こしてしまう(kernel32.dll)みたいです。多分、僕の環境が一般的じゃ
ないので、それが原因じゃないかな、と思っています。現在、解析中です(←時間
がかかりそうですが・・・)。
因みにcygwin32はB20(full.exeのほう)です。perl -vは以下の通りです。
This is perl, version 5.005_62 built for cygwin
折角情報を頂いたのに、生かせなくって、申し訳ないです。

No. 758 # 68user 2000/02/28 (月) 03:59
> selectとかの概念がまだ無いのでアルゴリズムがまだ
> 理解できずに停止しています。
考え方は http://X68000.startshop.co.jp/~68user/net/echo-4.html
同じです。モジュールを使うことで、ちょっとだけすっきりと書けます。
ここらへんは、そのうち web で解説を書くつもりです。

> ひょっとして、僕の質問のために作って頂いたものですか?
自分で使おうと思って、たまたま作ってました :-)
一応、GET だけはできるレベルのものを置いておきます。
    http://X68000.startshop.co.jp/~68user/tmp/1st-proxy.pl
shutdown あたりが とてもあやしい。

> cygwinに入っているPerlはforkが使えるそうです。
あ、そうなんですか。Windows 環境で perl を動かした
ことがないので、適当に書いてしまいました。

No. 759 # 68user 2000/02/28 (月) 20:05
http proxy は結構難しいですね。シグナルが飛んできたり、
コネクションを切断できなかったり、ファイルディスクリプタが
解放されなかったり…といったバグに苦しみながらも、3日かかって
やっと書き上げました (でも HTTP/1.1 には未対応)。
# perl が panic で落ちるのを初めて見た。

でも、ネットワークプログラミングに関する理解力を試すには、
絶好の例題かと思いますので、ぜひチャレンジしてみて下さい。
# というわけで、完成版は出しません :-)

No. 760 # へにか [URL] 2000/02/28 (月) 22:48
いろいろ、ありがとうございます。早速ダウンロードして解析してます。
まだまだ、分からないことばかりですが、何とかふんばって作ってみます。
でも、68userさんが3日かかって作り上げたってことは、僕はどのくらい
かかるのか、考えただけでも恐ろしくなります。いつになるやら・・・

もっとも、試行錯誤して自作するのは結構楽しいので、以下の、
>でも、ネットワークプログラミングに関する理解力を試すには、
>絶好の例題かと思いますので、ぜひチャレンジしてみて下さい。
># というわけで、完成版は出しません :-)
は、楽しみが残って嬉しいです。

>web で解説を書くつもりです。
楽しみにお待ち申し上げます :>

# ># perl が panic で落ちるのを初めて見た。
# 僕も見られればいいなぁ、と妄想してます・・・

No. 761 # 金床 [URL] [E-mail] 2000/02/29 (火) 21:49
みなさんはじめましてこんにちは。
今日はじめてこのページを見たのですが、いやはや素晴らしい内容ですね・・
さんざん苦労して色々なところで得た知識(+α)がここに・・・(笑

私は最近Winでのネットワークプログラムに凝っているものです。
簡単なHTTPやSMTP、POP3クライアントはBorland C++ BuilderでWinsockを使い作成したこともあります。

さて実は質問があるのですが・・・
現在DNSサーバーからのMXレコードの取得のプログラムを作っています。(リゾルバもどき?)
メールアドレスに対し送信先のSMTPサーバーのアドレスを調べる簡単なクライアントです。
さてそこで問題となるのが問い合わせを行うDNSサーバーです。
私はダイアルアップでインターネットに接続しているのですが、接続した状態でwinipcfgを実行すると
「DNSサーバー」の欄にDNSサーバーのIPアドレスが入ります。
ダイアルアップを終了するとこの表示が消えます(当たり前かもしれません)。

このDNSサーバーのアドレスをプログラム内で取得したいのですが・・・一体どうやれば良いのでしょうか。
もし何かしらご存じでしたらお教え頂けるとありがたいです。

No. 762 # 68user 2000/03/01 (水) 01:17
> このDNSサーバーのアドレスをプログラム内で取得したい
こればっかりは OS に尋ねるか、設定ファイルを見るか、
ユーザに手動で入力させるか、くらいの手しかないんじゃ
ないでしょうか。

winipcfg の出力を見るってのはダメですか?
# 美しくないですけど。

No. 763 # kuw 2000/03/01 (水) 09:36
こんにちは。いつも勉強させていただいています。
> DNSサーバーのアドレスをプログラム内で取得したいのですが
RasGetEntryProperties で取得できるような気がします。
RASENTRY 構造体の ipaddrDns が、
> Specifies the IP address of the DNS server to be used while
> this connection is active.
だそうです。
NT で無事に取得できた覚えがあるのですが、かなり昔のことなので
記憶が曖昧です。

No. 764 # 金床 [URL] [E-mail] 2000/03/01 (水) 20:44
68userさん、kuwさん、お返事ありがとうございます。
>ユーザに
出来れば使う人にDNSサーバーを意識させないで(設定の必要なしに)
動かしたかったのです。。
>RasGetEntry
おお、ありがとうございます。そうか、こういうのがあったのか・・・とヘルプを見ましたが、
NTのみとのこと・・(涙
実はダイアルアップでない、LAN内の端末でも使いたいという希望もあるんです。

おとなしくあきらめてユーザに設定してもらおうかな(^-^;;
本当にありがとうございました。

CGIのperlスクリプトなどについてもここで勉強させていただきます。
それでは失礼致します。

No. 765 # 68user 2000/03/01 (水) 21:32
Windows は全く知らないのですが、
    open(IN,"winipcfg|");
    while (<IN>){
        last if ( ($ip_addr) = m/(\d+\.\d+\.\d+\.\d+)/ );
    }
てな感じで取得できないんでしょうか?

Prev< No. 757〜765> Next  [最新発言に戻る] [過去ログ一覧]