|
少なくともNTであれば C:\> type CON > COM1 といった方法でシリアルポートとお話できます。 parityやbaud rate、タイムアウト等の設定は、MSDOSと同じ modeコマンドで行います。 Windows95/98のことは知りませんが、似たようなものだと思いますよ。 |
|
@ありしあさん お褒めの言葉ありがとうございます。でもありがたくは思いますが、 もっとありがたいのは「ここは間違っている」「ここの記述が 理解しにくかった」などの指摘です。もちろん「こういうサンプル プログラムがあるとよい」とか、単なるタイプミスのご報告でも 大歓迎です。 何かしら気づいた点がありましたら、よろしくお願いします。 と言っておきながら、これまでいくつかプログラムの不具合や 記述ミスのご指摘を頂きましたが、忙しくて web に反映できず、 誠に申し訳なく思っています。手元にあるファイルは修正して いますので、暇ができ次第更新するつもりです。 # なのに、また忙しくなってきてしまった…。 |
|
procmailについてあるツールformailについての 質問です。 formailを使用して自動返信設定を作成中なのですが from句を任意で指定したアドレスに変更して、返信したいのです。 今の状態を見るとユーザー名+サーバーのドメイン名といった具合になってしまいます。 これを"xxx@xxx.yyy.zzz"といった指定したメールアドレスをfrom句に入れて自動返信したいのです。そういった方法はあるのでしょうか? よろしくお願いいたします |
|
追記です。 現在、procmailの設定は :0 h c * !^FROM_DAEMON * !^X-Loop:your@own.mail.address | (formail -r -A"Precedence: junk" \ -A"X-Loop: your@own.mail.address" ; \ cat resmsg) | $SENDMAIL -t これだと、送信者名がUNIXのユーザー名になってしまう。 最後の$SENDMAILで送信しているから当然なのですが・・・ ので、この送信者をxxx@xxx.yyy.zzzとしたいのです。 なにとぞ、よろしくお願いします。 追伸 どなたか、linuxサーバー(Redhat 6.2)で使用可能なお勧めの 自動返信ツールをご存知でしたら教えてください。 smtpにはsendmail8.9.3を使用しています。 |
|
むにむに。。思ったこと。 link-check.pl 114-115行目。 &check_link(SITES=>[@sites], MAX_CHILDRED=>20); 138-143 if ( defined $args{SITES} ){ @sites = @{$args{SITES}}; } if ( defined $args{MAX_CHILDREN} ){ $max_children = $args{MAX_CHILDREN}; } MAX_CHILDRED -> ? |
|
>68user 様 アドバイスありがとうございました。 どうやら容量の枯渇が原因でした。 余計なものを移動したら、動くようになりました。 ありがとうございました。 |
|
Perlのネットワークプログラムで、サーバーとの接続が 切れた状態を検出したいのですが、LANケーブルがつながった状態で 通信できなくなった状態は検出してPerlプログラムを終了出来るのですが LANケーブルを引きぬくことによって、通信できなくなった状態はどのようにして検出したらよいのですか? 一応、Perlの中でPingをうって帰ってきた値を見て検出しようと したのですが、Perlの中のPingはRoot権限でないとエラーに なってしまいます。 Root権限以外でPingを実行する方法か、あるいは違う方法を 知っていたら教えて下さい。お願いします(v_v) |
|
@宗佑さん > "xxx@xxx.yyy.zzz"といった指定したメールアドレスを > from句に入れて自動返信したいのです。 これは、単に From ヘッダが xxx@xxx.yyy.zzz になっていれば いいのですか? それとも envelope from が xxx@xxx.yyy.zzz と なっていて、例えば転送途中でメール送信に失敗した場合、 エラーメールが xxx@xxx.yyy.zzz に送られることを意図して いますか? 前者ならただ単に From: を置換するだけなので、formail -i や formail -I でできそうです。後者なら sendmail -f xxx@xxx.yyy.zzz でしょうか。 なお、僕は formail を使ったことはありませんし、できるか どうか試してもいません。 @やままさん > MAX_CHILDRED -> ? む、typo ですね。直しました。御指摘ありがとうございました。 @ありさわさん ケーブルを抜いた状況だとどうなるんですかね。多分僕なら一定時間で タイムアウトさせて unreachable かどうかを判断すると思いますが、 本当はどうすべきなのかは わかりません。 それはそれとして、以下は ping で判断するという前提の話。 ping は ICMP プロトコルを使いますが、これは root 権限が ないと実行できません。その証拠に ping コマンドは root に suid されています。 % ls -l /sbin/ping -r-sr-xr-x 1 root wheel 195956 Jul 27 23:31 /sbin/ping* というわけで、素直 (?) にping コマンドを使うのがいいのでは ないでしょうか。 |
|
>ケーブルを抜いた状況だとどうなるんですかね。多分僕なら一定時間で >タイムアウトさせて unreachable かどうかを判断すると思いますが、 >本当はどうすべきなのかは わかりません。 OS 依存ですが、ifconfig -a とすると表示されることがあります。 下は FreeBSD の場合です。 dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::xxx:xxxx:xxxx:xxxx%dc0 prefixlen 64 scopeid 0x1 ether xx:xx:xx:xx:xx:xx media: autoselect (none) status: no carrier supported media: autoselect 10baseT/UTP <full-duplex> 10baseT/UTP none no carrier というのがケーブルが抜けたことを意味していると思っても だいたいあたっているはずです。一方、Solaris のように抜けた瞬間に /var/adm/messages などに記録されるものもあります。 Solaris がでたついでなので、 >1. /var/log/messages や /var/log/maillog に詳細なエラーは出ていないか Solaris の場合 sendmail のログは通例 /var/log/syslog に記録され、 BSD の /var/log/messages にあたるものは /var/adm/messages です。 |
|
No.1299の ありさわ です。 いろいろご回答いただきありがとうございます。 掲示板に書き込みしたのが初めてだったので、 返答が有ったことにチョット感激してます。 この件については結果的に、僕の技術不足で違う方法によって 対処をすることになりましたが、今後のためにこの件について 前の書き込みで説明が足りなかった分の説明をさせていただきます。 切断を検出して子プロセスをKillする一連の作業は コマンドラインからではなくPerlプログラム内で行いたいです。 ついでに何を作成したかというと、ここのサンプルプログラムを 利用してネットワーク対戦のロビーサーバーを作成しました。 Q.LANケーブルを抜いたらどうなるのか? まずこれは、クライアント側のLANケーブルを抜いた時のことです。 ※LANケーブルを抜いた時の様子 ・最初にケーブルがつながった状態でサーバーに接続をしにいきます。 ・サーバーはこのクライアントに対して子プロセスを作成します。 ・接続が確立した状態でクライアントのケーブルを引きます。 ・子プロセスはクライアントとの接続が切れたことを認識できず 残ったままになります。 ・この作業(嫌がらせ)を何度もされると子プロセスが溜まっていって 結果、サーバーがダウンするんじゃないか?って思ってます。 あたたかいご回答、本当にありがとうございました。 |
|
ありがとうございます。 formailによる自動返信完了しました。 errorメールに関しても、本文に細工をしてなんとか解決しています。 こういうことが、やりたかったのも、UNIXのアカウント名とメールアカウント名が、まったく一致しない仕様のシステムを使っているので、外部に対する送信者が誰であるかを混乱させないようにする目的があったからです。 ありがとうございました |
|
はじめまして。 GOOで検索してきました。 perlの事について質問があるのですが。。。。 perlを使ってActiveXのDLLファイルを舐めようと思っているのですが、全くもって方法が解りません。 ここの過去ログや、その他色々探して見ましたがそれらしいものは見当たりませんでした。 どうぞお解りになる方がいらっしゃいましたら御指導宜しくお願いします。 |
|
@rosegarden さん > OS 依存ですが、ifconfig -a とすると表示されることがあります。 なるほど、勉強になりました。どうもです。 @ありさわさん > 子プロセスはクライアントとの接続が切れたことを認識できず > 残ったままになります。 という用途なら、TCP のタイムアウトを待つか、自前で タイムアウトの機構を作るのが普通のような気がします。 @Taka さん > perlを使ってActiveXのDLLファイルを舐めようと思っているのですが 「ActiveX の DLL を舐める」の意味からして さっぱりわかりません。 google で検索すると http://www.union-net.or.jp/~cgifaq/Archive/msg13177.html Subject: [cgi:13180] Re: Perl からActiveX のDLL を呼び出すには というのが引っかかりますが、現在サーバの容量オーバーにより公開を 中止しているようで。あと perl モジュールの Win32::COM ってのが ありますが、関係あるのかなぁ…。 http://www2s.biglobe.ne.jp/~cru/library/zddbbs/cgi-bin/wwwboard.cgi に行くと、その道の偉い人が教えてくれるかもしれません。 |
|
初めまして。 上條と申します。 かなり困っております。 どなたかお知恵を拝借願います。 現在Windows98にFTPサーバソフトをインストールしてあり、カスタマイズチューンナップされた シェルのないFreeBSDにファイルをダウンロードさせたいのです。 FreeBSD側のコントロールはTelnetでコマンドを入力することにより、FreeBSD側は指定された IPのFTPサーバに(この場合Windows98)接続をしてダウンロードを開始する仕組みなっています。 この際のFTPサーバへの21番にどういったコマンドが流れているのか不明ですが、様々なFTPサーバソフトを 試した結果、NDMTというコマンドがFTPサーバソフト側で処理できないこと、winftpdeamonの コミュニケーションタイムがオーバーになるというエラーが出て、FTPサーバ側で切断をしてしまいます。 一度、Win98+wftpdでの成功例を聞いたことがありますが、色々設定を変えてみましたが、うまくいきません。 接続の形態としてはルータ支点に同ノード内の10BASE-T接続です。 Freebsd側とは全てのPORTで接続は出来ます。 プロトコルはTCP/IPを使用しています。 もっとも最初からLinuxやFreeBSDにFTPサーバをたてることが出きれば問題なく接続できることは マニュアルに明記してあるのですが、私がFTPをたてるだけの技術がないことと、本日中という時間の中で 手元に使用できるLINUXなどがなく、大変困っております。 詳しい説明でなくても結構ですので、何か妙案がございましたら、どなたかお教えいただけないでしょうか。 よろしくお願いいたします。 |
|
AnHTTPD で HTTP 使ってダウンロードするのは? FreeBSD の方は標準コマンドの /usr/sbin/fetch で落せますよ。 FreeBSD の 4.0-RELEASE 以降だと ftp クライアントの類は passive mode で動作しますが、これはチェックしました? passive mode をオフにするには /etc/login.conf の default エントリで FTP_PASSIVE_MODE という環境変数を セットしているから、そのファイルを書き換えて、NO にすれば 良いですよ。 思い付くのはこれだけですね。カスタマイズされているのだから、 これ以上答えようがないですね。 |
|
> FreeBSD の方は標準コマンドの /usr/sbin/fetch で落せますよ。 失礼、/usr/bin/fetch ですね。 それから wget でも良いかも知れません。 もっとも、FreeBSD がわで IPv6 の設定(デフォルト)してあると最近の wget は IPv4 のオプションつけないと no route to host って エラーを出すこともありますが。 |
|
> FreeBSD の方は標準コマンドの /usr/sbin/fetch で落せますよ。 失礼、/usr/bin/fetch ですね。 |