68userさん、お返事ありがとうございます。 あのあと、調査して、原因がわかりました。 ありがとうございました。 |
はじめまして!僕はUNIXなどのプログラム関係は全く理解できなかったのですがこちらのサイトではとてもわかりやすく説明されているため大変勉強させていただきまことに感謝いたしております。これからも応援いたしますのでがんばってください。 |
はじめまして。初訪問で初投稿です.宜しくお願いします. 現在、[A装置]−[Router]−[B装置](簡単に記述)で接続した環境で、RouterにてIP Filteringの設定を追加しようとがんばっています。[A]→[B」は、RCPによるファイルの送受信を行っているため、RCP以外のアプリケーションプロトコル(Telnetとか)を遮断する方法を探しております。 まずは、「全アプリケーションプロトコル遮断」として、「RCPだけ通過」という方法を取ろうと思っているのですが、【RCPのポート番号】が不明です.【RCP】は、Welknown-portではないのでしょうか?UNIXがその都度ポート番号を取得してしまうのでしょうか?ご存知の方教えて下さい. |
>>2005 ネットワークセキュリティ > 【RCPのポート番号】が不明です shell 514/tcp です。 こういう場合はサイズの大きなファイルを rcp しておいて、 その間に netstat -a を実行すればよいでしょう。 |
>>2005 ネットワークセキュリティ 蛇足ですがセキュリティを気にするのなら r系のコマンド自体使わない方が良いかと思いますが・・・。 |
はじめまして。もっちと申します。 いつも参考にさせていただいています。 はじめて投稿させていただきます。 http⇔https(https⇔https)のsocket通信をC言語で実現させたいのですが、 情報が無い為、何をどうすれば良いのかわかりません。 http⇔httpの通信はこちらのホームページを参考にさせていただいて、 実現することが出来ました。(ありがとうございます) いろいろ情報を検索して、opensslを使用すれば良いということまでは わかったのですが、それをどの様に使用すれば、暗号化が行われ、 通信を行い、受信データを複合できるのかわからず、悩んでおります。 情けないのですが、私には余りC言語での開発経験がありません (普段はPerlを使用しています) ですので、余計に訳がわからなくなってきております。 どなたか、この問題に関する情報をお持ちの方、いらっしゃらないでしょうか? 開発環境は、Solaris SunOSです。 opensslなど、必要と思われるものは準備されております。 (他に必要なものなどあれば、それも併せて教えていただければ幸いです) どうぞ、よろしくお願い致します。 |
>>2008 もっち 僕には難しいことはわかりませんが、とりあえず OpenSSL のマニュアル http://www.openssl.org/docs/ssl/ssl.html OpenSSL 和訳サイト。古いかも。 http://www.infoscience.co.jp/technical/openssl/docs/ssl.html SSLを使った暗号化通信のやり方 http://stingray.sfc.keio.ac.jp/security/ssl/ssl.html RFC 2246 TLS-1.0 (≒ SSL-3.0) http://ring.asahi-net.or.jp/archives/doc/RFC/rfc2246.txt ここらへんを参考にしてみて下さい。 |
>>2009 68user 68user様、早速のご返答ありがとうございます!! >OpenSSL のマニュアル の方は、私のほうでも見つけていたのですが、何を書いているのか 理解出来ず、挫折していました。 >SSLを使った暗号化通信のやり方 早速行ってきました。 まだ、詳細まで読んでいませんが、説明がスゴク丁寧で、 私の知りたかった関数の説明までされていて、私のようなC言語未熟者にも 理解できそうな気がします。 教えていただいたサイトを参考にして、実現できる様、頑張って見ます。 実現出来次第、報告に伺います!! |
「ネットワークセキュリティ」の件 >>2007 hsj hsjどの ご指摘の通り、R系のコマンドを使用している時点でセキュリティに問題ありとは認識しています。。。先にこっちを対応すべきかもしれませんね。参考にさせていただきます。 >>2006 68user 68userどの ポート番号の件ありがとうございます。 さっそく、設定値反映して確認します。確認結果は後日ご報告します。 |
初めまして、すごく初心者の者です。 早速質問なのですが、HTTPでは要求などを文字列として送ってるだけなのでしょうか。つまり GET /test/test.html HTTP/1.0 などの文字列を相手に送ってるだけでしょか。 相手側では、その文字列を受け取って、Javaのtokenizerとかで、文字を切り出して s1="GET" s2="/test/test.html" s3="HTTP/1.0" if(s1.equals("GET"){} でプログラムで処理して結果をクライアントに文字列で返して、 またブラウザが文字列を切り出して、レイアウトしているだけでしょか。 だから、自分でも送られてくる文字列を受けることができて、文字列を見れて、また、HTTPで文字列を返すプログラムが書けるのでしょうか。 また、こんな質問を受け付けてる掲示板をご存知でしたら教えてください。 |
こんにちは、お邪魔します。 >HTTPでは要求などを文字列として送ってるだけなのでしょうか。 そうです。人間が見て理解できるので楽しいですよ。 >相手側では、その文字列を受け取って、Javaのtokenizerとかで、文字を切り出して 相手側=WWWサーバーと考えると、おっしゃる通りだと思います。 受け取った文字を解釈して、レスポンスを(画像だったりもしますので全て文字列とは限りませんが)ブラウザに送ります。 ブラウザは、受け取ったデータがHTMLの場合はそれを解釈して(文字列を切り出して)レイアウトして表示します。 >だから、自分でも送られてくる文字列を受けることができて、文字列を見れて、また、HTTPで文字列を返すプログラムが書けるのでしょうか。 書けます。 偶然、先日「まさにそれ」というような物を書いたので、良かったら見てみて下さい(だからノコノコ出てきてしまいました)。 http://www.gyosatu.com/jumper/software/MHTTPD/MHTTPD.java http://www.gyosatu.com/jumper/cgi-bin/bbs/bbs2.pl?bbs=jumper&i=110#3 に、コンパイルと起動の仕方をごく簡単に書いてあります。 #もし分からなくてかつ動かしたかったら言って下さい。 まさに >if(s1.equals("GET"){} のような処理をしている筈です。 受け取った文字列を見えるように改造するのも簡単だと思います。 >また、こんな質問を受け付けてる掲示板をご存知でしたら教えてください。 ここが適切だと思います。 |
またまたお世話になります。 bash上で以下のようにすると、 # tail -f anylog.log ログに追加される内容が逐次見られますが、コレをちょっと変更して # tail -f anylog.log | grep "extract_keyword" > /dev/tty0 & として、ログインしていないコンソールに表示させようとしましたが、 jobs で表示されないため、停止が出来なくなりました。 ps で見てみると、プロセスの親子関係が無くなっているように見えます。 これはどうしてなんでしょうか? また、このコマンドを実行したコンソールがログアウトした時に 同時に終了させたいのですが、どう指定すればいいでしょうか。 アドバイスをよろしくお願いします。 |
こんにちは。 私は今ソケットを使ったプログラムを作成していて、 いろいろ調べてたら、このサイトが見つかり非常に助かってます。 そこで質問なのですが以下のURLよりDLしたものをコンパイルし、 実行するとコアダンプしませんか? http://www2.startshop.co.jp/~68user/net/sample/http-client-2.c 私はWindows2000(Cygwin)でもSolarisでも コアダンプしました。 最初は自分でかなりいじってしまったので、 そのせいかなぁとも思ったのですが、 DLしたものをそのまま使ってもなっちゃいました。 今、修正しようと思ってるのですが、 なかなかうまくいきません。 どなたか知ってる方いらっしゃいませんか? 教えて下さい。 よろしくお願いします。 |
>>2014 スナフキン > # tail -f anylog.log | grep "extract_keyword" > /dev/tty0 & > として、ログインしていないコンソールに表示させようとしましたが、 > jobs で表示されないため、停止が出来なくなりました。 こちらの環境の bash では、jobs で表示できました。 関係ないかもしれませんが、 % (tail -f anylog.log | grep "extract_keyword" > /dev/tty0) & だとどうなりますか? > また、このコマンドを実行したコンソールがログアウトした時に > 同時に終了させたいのですが、どう指定すればいいでしょうか。 bash で & を付けると、SIGHUP をブロックしてしまったような 気がしますが…。違ったっけ。回避策は知りません。bash 使いの 方、いらっしゃいますか? >>2015 nana > 以下のURLよりDLしたものをコンパイルし、実行するとコアダンプ > しませんか? こちらの FreeBSD, Solaris, Linux 環境ではコアダンプしません でした。引数はどのように指定しましたか? また、-g を付けて コンパイルして、gdb で backtrace するとどう表示されますか? % gcc -g -o http-client-2 http-client-2.c % gdb http-client-2 (gdb) run http://www.yahoo.co.jp/index.html Starting program: http-client-2 http://www.yahoo.co.jp/index.html Program received signal SIGSEGV, Segmentation fault. 0xef5a4674 in strlen () from /usr/lib/libc.so.1 (gdb) backtrace #0 0xef5a4674 in strlen () from /usr/lib/libc.so.1 #1 0xef776b74 in _doprnt () from /usr/ucblib/libucb.so.1 #2 0xef777aa4 in printf () from /usr/ucblib/libucb.so.1 #3 0x11320 in main (argc=2, argv=0xeffffac4) at http-client-2.c:108 # 今気づきましたが、引数に「http://」を指定したときに # エラーで弾かないのはバグですね。 |
早速質問なのですが、 MACアドレスとIPアドレスの両方が必要な理由を教えてください。 あと、windowsのDOSでarp -aとタイプしてもNO ARP Entries Foundと出てしまうのは、なぜですか。どういったときに、テーブルにMAC,IPの対応がたされるのですか。www.goo.ne.jpとかにアクセスしただけではだめなのですか。 通信するときに,最初IPアドレスでその通信相手のマシンからMACアドレスの情報を得て、それからまた、パケットにIP,MAC両方のアドレスをつけて、また、その相手のマシンにパケットを送るのは、無駄じゃないですか。 あと、初心者がネットワークエンジニアになるための勉強に、お勧めの参考書、ホームページ、どのようなステップをふめばいいか、皆さんの意見、経験を教えて下さい。 |
>>2017 aiko > windowsのDOSでarp -aとタイプしてもNO ARP Entries Foundと > 出てしまうのは、なぜですか。 Ethernet カード (=ネットワークカード=NIC) を使っていますか? MAC アドレスは Ethernet カードに対して割り振られるもので、もし ダイヤルアップ PPP を利用していたら arp テーブルは全く利用されません。 > MACアドレスとIPアドレスの両方が必要な理由を教えてください。 IP データグラムの最大長は 64K バイトですが、Ethernet フレームの 最大長は 1500 バイト程度です。64K バイトの IP データグラムを Ethernet 上で送信する場合、数十個の Ethernet フレームに分割 しなければいけません。 宛先 IP アドレスが書いてあるのは IP データグラムの先頭だけなので、 分割した途中の Ethernet フレームを見ても、宛先 IP アドレスは わかりません。つまり Ethernet というレイヤでは、通信先を特定 のに IP アドレスが使えないわけです。ここに MAC アドレスの 存在理由があります。 より根本的には、Ethernet というのは IP に特化したものではないから、 というのが説明になるでしょう。例えば ADSL で使われている PPPoE (PPP over Ethernet) がその一例です。 # http://www.rtpro.yamaha.co.jp/RT/docs/pppoe/ |
>>2018 68user >64K バイトの IP データグラムを >Ethernet 上で送信する場合、数十個の Ethernet フレームに分割 >しなければいけません。 結局は、分割したEthernetフレームの1個1個にMACアドレスがたされるということですか。もしかして、そのEthernetフレームにIPアドレスを1個1個つけてもいいけど、IPアドレスの大きさが保証されてないから(IPv6に変わったり)、Ethernetフレームのアドレス用の領域分(フレーム構成)が、IPアドレスの大きさが変わった場合に影響受けるのは、階層的?にまずいということですか。 だから、IP(プロトコル)とは別に、LAN上では、独自のプロトコルでフレーム構成を決めて、MACアドレスで配信してるということですか。 >Ethernet カード (=ネットワークカード=NIC) を使っていますか? 自分の環境って関係ないんじゃないですか。だって相手のMACアドレスが知りたいわけだから。自分は、Laneed LD-10/100AWLとかいうカードで、ハブにつないで、LANに接続してます。 あと、MACアドレスを問い合わせない通信ってあるんですか。 IPデータグラムって、自分のマシンから出て行くときに絶対Ethernetフレームに分解されて出て行くんですか。 ネットワークって難しいですね。是非、勉強方法など教えてください。 |
>>2019 aiko > 結局は、分割したEthernetフレームの1個1個にMACアドレスが > たされるということですか。 そうです。IP データグラムのヘッダに送信先 IP アドレスと 送信元 IP アドレスがあるように、Ethernet フレームのヘッダにも 送信先 Mac アドレスと送信元 Mac アドレスが付いています。 > IPアドレスの大きさが保証されてないから (IPv6に変わったり)、 > Ethernetフレームのアドレス用の領域分(フレーム構成)が、 > IPアドレスの大きさが変わった場合に影響受けるのは、 > 階層的?にまずいということですか。 まぁそうですね。もし Ethernet が IPv4 べったりな規格だったら IPv6 は実現しなかったでしょう。各レイヤ間ができるだけ依存 しないように考えた結果、柔軟性が生まれたのです。ちなみに Ethernet の上に載せられるプロトコルには、IP の他に Xerox XNS や Novell IPX などもあります。 > 自分の環境って関係ないんじゃないですか。だって相手の MAC > アドレスが知りたいわけだから。 Ethernet を使っていないなら Mac アドレスは全く使いません。 arp -a でテーブルが空だった理由はわかりません。時間が 経過したためキャッシュを破棄したのかもしれないし、そうで ないかもしれない。 > あと、MACアドレスを問い合わせない通信ってあるんですか。 IP データグラムを送るという前提なら、必ず Mac アドレスを 知らなくてはいけないでしょう。 # 強いて言えば、ARP プロトコルは Mac アドレスを問い # 合わせるためのプロトコルだから、ARP を投げる前に # Mac アドレスを問い合わせることはありませんね。 > IPデータグラムって、自分のマシンから出て行くときに絶対 > Ethernetフレームに分解されて出て行くんですか。 Ethernet を利用していないなら、それは間違いです。もし Ethernet を利用しているならば、IP データグラムは必ず Ethernet フレームに載せられて流れていきますが、サイズが 小さければ分割はされません。 > 是非、勉強方法など教えてください。 概要を知るにはこれ http://www.ohmsha.co.jp/data/books/contents/4-274-06257-0.htm プログラミングするならこれ http://www.mmjp.or.jp/pearsoned/washo/network/wa_net28-j.html がお勧めではないかと思います。 |
>>2019 aiko あと、Ethernet と IP では、役割が違います。Ethernet はセグメント内 (ルータから先は別セグメント) の通信を保証するレイヤ (データリンク層)。 ルータから先は Ethernet の管轄外です。 で、IP はエンドツーエンドの通信を保証するレイヤ (ネットワーク層)。 ついでに言うと、TCP は IP のような細切れなパケットでなく、連続した ストリームを送ることを保証するレイヤ (トランスポート層)。 バカ HUB やツイストペアケーブルは、端点 (って言うのかな?) から 端点へ正常な信号を送ることを保証するレイヤ (物理層)。 # ここで書いた各層の役割は、僕が勝手に考えたもので、OSI 参照 # モデルの定義とは違います。 # http://home7.highway.ne.jp/dayan/tips/unix/tcp.html |
>>2016 68user 何の事は無い、あっさり解決しました。()の動作はperlと同じなのですね。 (というよりperlがシェルに似せたのだと思うけど) ps での表示で親子関係表示されました。 今後詰まった時、とりあえずperlでの記述を真似てみます(笑) 同時に終了の件は、考えてみればそこまでやるなら各種デーモン類の 起動法を真似ればいいかも、なのでとりあえずコレで良しとします。 ともかく、ありがとうございました。 ちなみにこのスクリプトは、自宅で公開しているサーバーでのログ監視 に利用しています。 ついでに、といってはなんですが、このマシンはサーバーとして利用して いるので、通常はリモートログインでコンソールからの操作は滅多に行わ ないため、アイドルが続くとディスプレーが非表示モード(でいいのかな) になります。 BIOS関係かなとも思いますが、Windowsも同居しているのでできればOS側で 対処できないかと考えています。 変更箇所もしくはポインターを教えてもらえれば幸いです。 |
こちらでは、お久しぶりです。 >>2016 68user 68user さんは、お気づきだろうと思うので、蛇足ですが。 私の方では core を吐きました。多分、path とか URL の長さチェックを していないからだと思います。 /* genx.c */ #include <stdio.h> int main(int argc, char *argv[]) { int i; for (i = 0; i < 1000; i++) putchar('x'); return 0; } こんなプログラムを作って、 % ./http-client-2 http://www.yahoo.co.jp/`./genx`.html としたら signal 10 を受けて core を吐きました。 # 個人的にはこの程度のサンプルで、長さチェックまでやるのは # 本質的な部分が見えなくなるので、今のままで良いかと思います。 # せいぜい、注意をひとこと書けば良いだけだと思います。 >>2015 nana 上記の通りなので、こういうバグ報告の際には引数に与えた文字列とか 環境変数を参照するものは環境変数とかを明示しないと意味がないです。 上記のは core を吐かせるための一例なので、原因は他にもあるかも 知れませんが。 |
>>2022 スナフキン > 何の事は無い、あっさり解決しました。 そうですか、() で囲めば解決しましたか。プロセスグループとか tty とか、さっぱりわかってないので適当に言ってみたのですが。 > ()の動作はperlと同じなのですね。 open(IN, "(cd dir; foo | bar) |") みたいなのを言ってますか? perl では、open の引数の先頭か末尾に `|' を付けると、構文 解析なども行わず 丸ごと /bin/sh に投げます。なので、perl の 作りが sh に似ているのではなく、単に sh を利用しているだけです。 > アイドルが続くとディスプレーが非表示モード(でいいのかな) > になります。 XFree86 ならば xset -dpms とするか、/etc/XF86Config で BlankTime, StandbyTime, SuspendTime, OffTime などを設定 します。詳しくは XF86Config(5) をどうぞ。 ただのコンソールならば FreeBSD 4.3-RELEASE なら /etc/rc.conf に saver="NO" です。それ以外の環境はわかりません。 >>750 を見ると Vine Linux をお使いのようですが、毎回必ず 環境を書いた方がよいでしょう。 |
>>2023 rosegarden > 68user さんは、お気づきだろうと思うので、蛇足ですが。 > 私の方では core を吐きました。多分、path とか URL の > 長さチェックをしていないからだと思います。 全然お気づきではなかったです。お恥ずかしい。 「C で書くならここまでちゃんとやらないと」と言えるような サンプルにしたいので、直しておきます。 |
PerlのCGIで記入した文章において, 改行をスペースに変換する方法を以前お尋ねしました。 その後,いろいろ試してみたのですが, 日本語コード変換直後に $val =~ s/\r\n|\r|\n/ /g; を記入することで上手くいきました。 どうもありがとうございました。 |
>>2024 68user プロセスグループというのですか、時間があれば調べてみます。 しかし、ホントに良くできていますよね、M$とは大違いだ(笑) >open(IN, "(cd dir; foo | bar) |") みたいなのを言ってますか? いえいえ、全体的にです。 自分は、今の所bashしか使っていませんが、スクリプト言語全体に 同じような構文が多いように感じます。(意識的なんでしょうか?) >環境を書いた方がよいでしょう。 そうですね、これからそう心がけます。 VineLinuxには /etc/rc.conf は無く、/etc/rc.d/ 関係にもそれらしい 記述は見つけられませんでした。いろいろ調べてみます。 ありがとうございました。 |
>>2022 スナフキン > 何の事は無い、あっさり解決しました。 すいません、上記の発言は正確では有りませんでした。 正確には、ps での表示にはちゃんと親子関係が表示されましたが、 コマンド jobs には表示されませんでした。 ん〜、親PIDが判る(killできる)のでこれでも可です。 >プロセスグループ コレ、特有の呼び名かと思いましたが、単純に自分の言っていた親子 関係にあるプロセス群のことを指していたのですね(^^; |
すみません。ネット初心者です。 くだらないことをおききしたいのですが、、、。 いろいろなホームページをみていたら、かってに 何かわからないのですが、「無料のダウンロードを行いました」 といって、なんだか何もしていないにもかかわらず、 なにかが、ダウンロードされてしまったみたいです。 これによって、個人情報が流れてしまったり、することはあるのでしょうか?なんだか不安です。 アドバイスお願いします。 いろいろ不安になります。 |
koni と申します。 (環境: ActivePerl v5.6.0 + WinNT) ワンタイムパスワードについて質問があります。 MD5 を使い認証をしてくるサーバーに Net::FTP を使用して自動 FTP をし たいのですが、うまく行きません。 詳細は以下です。 ※この件に明るくないため、言葉の使用法が誤っているかも知れません。 == まずは、 # start ----- use Net::FTP; $ftp = Net::FTP->new("ftp-server-name.co.jp", Debug => 1); $ftp->login('user', 'pass'); $ftp->quit; # end ------- などとしたところ、PASS を送信したところで、はじかれてしまいました。 ちなみにこれを ffftp などの MD5 対応のクライアントを使うと、 FFFTP Ver.1.80 Copyright(C) 1997-2001 Sota. ---------------------------- ホスト ftp-server-name.co.jp を探しています. ホスト ftp-server-name.co.jp (***.***.***.*** (21)) に接続しています. 接続しました. :(省略) >USER user 331 * * * MD5を使用します. >PASS [xxxxxx] 230 User user logged in. >TYPE A 200 Type set to A. ダウンロードのためにホスト ***.***.***.*** (*****) に接続しています. 接続しました. >NLST -alL 150 Opening ASCII mode data connection for /bin/ls. 226 Transfer complete. ファイル一覧の取得は正常終了しました. (124 Bytes) (* の部分は伏せてあります。) などとなり、接続できました。 個人的には、Net::FTP にこの MD5 を実装するには、上記の USER user をし たあと、331 の後の値を、Digest::MD5 のメソッドにかませて、戻り値をパ スワードとして送信すれば OK なのか、と考え、やってみたのですがダメそ うでした。 もしご存知のかたがいらっしゃいましたら、ご教授願います。 |
>>2030 koni > ワンタイムパスワードについて質問があります。 > MD5 を使い認証をしてくるサーバーに Net::FTP を使用して自動 FTP をし > たいのですが、うまく行きません。 一口にワンタイムパスワードといってもいくつかあるので、 これだけでは分かりません。 しかし、md5 が云々と言うことから、opie じゃないかと思いますが。 私自身 opie も S/key も使ったことがないので、分かりませんが、 > 個人的には、Net::FTP にこの MD5 を実装するには、上記の USER user をし > たあと、331 の後の値を、Digest::MD5 のメソッドにかませて、戻り値をパ > スワードとして送信すれば OK なのか、と考え、やってみたのですがダメそ > うでした。 多分 password を md5 でハッシュしても駄目でしょう。 ワンタイムパスワードの意味がないです。 CPAN に http://search.cpan.org/search?mode=module&query=opie という module があるのでトライしてはどうでしょうか? とにかく、認証方法がワンタイムパスワードとしか分からないので、 これでうまくいくかどうかは保証できません。 上記サイトの module search で S/key とか MD5 とか MD4 で それらしきものを検索してはどうですか? でも良いことを聞きました。ありがとうございました。 # web サーバで ftp 使わせているのですが、 # パスワードの保護がどうにかならないかと # 頭を抱えていたところです。 |
はじめまして、C言語でFTPクライントを作ろうとここのページを参照させて いただいたのですが、以下の部分のソースがよくわかりません。 87: while (1){ 88: char c; 89: c = getopt(argc, argv, "d"); 90: if ( c == -1 ) break; 91: switch (c){ 92: case 'd': 93: debug_flg = 1; 94: argc--; 95: argv++; 96: break; 97: default: 98: break; 99: } 100: } getoptは調べたところint型だと思うのですが、なぜchar型の変数に値を 代入しているのでしょうか? また、いろいろ調べてみたんですが、このgetoptで何をしているのかもよく わかりませんでした。よろしければこの部分についての解説もお願いいたし ます。m(_ _)m |
>>2030 koni そういう FTP サーバを使ったことがないので試すこともできないのですが、 これって APOP みたいな感じなんですかね? どこかで公開されている FTP サーバはないものでしょうか。 >>2032 snow > getoptは調べたところint型だと思うのですが、なぜchar型の変数に > 値を代入しているのでしょうか? これは僕のミスで、正しくは int です。直しておきます。 > このgetoptで何をしているのかもよくわかりませんでした。 引数解析です。 for ( i=1 ; i<argc ; i++ ){ if ( argv[i][0] == '-' ){ switch (argv[i][1]){ case 'd': debug_flg = 1; break; } } } みたいなもんですが、自分で書くのもめんどくさいのでライブラリを 使いました。 詳しくはここらへんをどうぞ。 http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=getopt&dir=jpman-3.1.0%2Fman§=3 |
>>2033 otp-md5 google 君に教えてもらいました。なるほど、こんな感じの流れになるのか。 http://www.jaist.ac.jp/~uchida-t/otp/ |
>>2033 68user ご回答ありがとうございます。 ですが、このままint型に変えただけだと、エラーがなければCに入るのは 通常「100」ですよね?ということは case 100: とすれば良いのですよね? そこを修正して、先ほどのプログラムを例に従って実行してみたのですが、 どうもどこかでループにはまっているようで、ファイルの取得ができません。 う〜ん・・・(汗 |
>68userさん http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/view-segabbs.cgi.diff?r1=1.3&r2=1.1&f=h ロボット検からまだ引っかかるので上記ページを確認したのですが <head>の部分が</head>になっているのがちょっと変かなっと思ったのですが…どうなんでしょうか。 |
>>2035 snow > エラーがなければCに入るのは通常「100」ですよね? 'd' の character code は 100 なので、100 でも 'd' でも動作は 同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。 > どうもどこかでループにはまっているようで、ファイルの取得ができません。 できる限り余分な部分を削ったソースを見せて下さい。 >>2036 ED > <head>の部分が</head>になっているのがちょっと変かな プログラムのソースでなく実物を見て下さい。 http://X68000.startshop.co.jp/~68user/segabbs/bbs3/vol5/5_97.html > ロボット検からまだ引っかかるので META タグを追加してからまだ15日しか経過していません。例えば google なら、クロール頻度は最低1ヵ月に1回だそうです。 http://www.google.com/intl/ja/faq.html |
>>2037 68user >> エラーがなければCに入るのは通常「100」ですよね? >'d' の character code は 100 なので、100 でも 'd' でも動作は >同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。 そうなんですか。すいません、'd'で大丈夫だとは知りませんでした。 >> どうもどこかでループにはまっているようで、ファイルの取得ができま >>せん。 >できる限り余分な部分を削ったソースを見せて下さい。 いえ、前回のcの型の変更以外の変更は行っていません。 それでできないのですが・・・ |
>68useさん すいません。プログラムのほうしか見てませんでした。 |
お礼です。 「ネットワークプログラミングの基礎知識」を参考にさせて頂きました。 とても分かりやすく私にとって大変役に立ちました。 自分はDOSやWindowsのアプリ、ドライバを作ることが主な仕事ですが この度、サーバ側のプログラムを作ることになり、こちらのHPを参考に させていただきました。 特に「ネットワークプログラミングの基礎知識」と「簡易版コマンド マニュアル」内のcrontabを読ませていただき、大いに参考になりました。 普段はC(ドライバ作成用)とDelphi(クライアント側アプリ作成用) を使っていますが、こちらでPerlの使い方までも教えてもらいました。 ただただお礼を言うばかりです。 素晴らしいHPを提供してくださって、こころから感謝申し上げます。 有り難うございました。 |
>>2038 snow > いえ、前回のcの型の変更以外の変更は行っていません。 > それでできないのですが・・・ 動かないというのは、 http://X68000.startshop.co.jp/~68user/net/c-ftp-1.html の ftp-client.c ですか? コマンドラインからは何とタイプしましたか? % ./ftp-client -d anonymous your@mail.address ftp.jp.FreeBSD.org /pub/FreeBSD/README.TXT のように -d を付けるとデバッグ情報が表示されますが、どこで 止まっていますか? もし NAT 環境で試しておられるなら、 --> PORT 192,168,0,7,9,58 <-- 500 Illegal PORT range rejected. などとプライベート IP アドレスを送ってしまい、エラーと なります。しかしこのプログラムではエラーチェックを行って いないので、構わず RETR を送ってしまいうためファイルを 取得できません。この点は説明を付けておくべきでしたね。 getopt の件は修正しておきました。ご指摘ありがとうございました。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/ftp-client.c >>2039 ED というわけで、しばらくお待ち下さい。 >>2040 Moo どもども。わかりにくい点がありましたら ご指摘お願いします。 |
>>2041 68user > この点は説明を付けておくべきでしたね。 NAT 環境では動かない旨、追加しました。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/c-ftp-1.html.diff?r1=1.1&r2=1.2&f=h |
>>1691 紅の猫 >>2023 rosegarden http-client, http-client-2 のバッファオーバーランの修正と、 bzero,bcopy の説明の追加を行いました。ご指摘ありがとうございました。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/http-client.c http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/c-http-1.html |
このようなことでもアドバイスもらえるのかな? えっと、CGIでHTMLの一部(5行目から7行目)までとかをログとして取得し、その部分を出力することはできるんでしょうか? |
>>2044 幸江 質問の意味がわからないです。 > HTMLの一部(5行目から7行目)までとかを この HTML はどこにあるんですか? どこかから取得するんですか? > ログとして取得し、その部分を出力 「ログとして取得」とはどういう意味でしょうか? HTML から 特定の範囲を切り出し、ブラウザ上に出力し、さらにそれを ログに記録しておくのですか? |
>>2041 68user 以下のようにコマンドを打ったところ、 ./ftp-client -d userid passwd hogehoge.com index.html 以下のようなデバッグ情報が出力されました。(一部文字化けしてますが) <-- 220-************************************************ <-- 220- 洩T[o[韃ヲ虧 誉芒鋤天B <-- 220-OS ・indows98SE 費 怒莉(19)髟・・ 房-- 220 ************************************************ --> USER userid <-- 331 Give me your password --> PASS passwd <-- 530 Not authorized. --> PORT 172,18,168,100,4,19 <-- 5--> RETR index.html で止まってしまいました。 NAT環境では使用していないので、ご指摘いただいた問題はないと思います。 |
あと、今確認したところUSER,PASS,PORTというファイルが残ってました。 下の書き込みで文字化け対象を記入してしまって、申し訳ありません。 |
>>2046 snow > --> PASS passwd > <-- 530 Not authorized. ということは、ユーザ名かパスワードが間違ってませんか? >>2047 snow > 今確認したところUSER,PASS,PORTというファイルが残ってました。 「--> PASS」というのを誤って copy & paste してしまったんじゃ ないでしょうか。このプログラムにはファイルを生成するコードは 入っていないです。 |
>質問の意味がわからないです ごめんなさい。 >> HTMLの一部(5行目から7行目)までとかを >この HTML はどこにあるんですか? どこかから取得するんですか? HTMLはYahoo!のトップなどです。 >> ログとして取得し、その部分を出力 >「ログとして取得」とはどういう意味でしょうか? HTML から >特定の範囲を切り出し、ブラウザ上に出力し、さらにそれを >ログに記録しておくのですか? そのようにしたいのですが可能なのでしょうか? |
>>2048 68user 再度実行したところ、USER,PASS,PORTは出てきませんでしたので、 私の間違いだったようです。すいません。 >> --> PASS passwd >> <-- 530 Not authorized. >ということは、ユーザ名かパスワードが間違ってませんか? 間違ってないんですが・・・(汗 普通にftpコマンドで繋げるとちゃんとつながりますし。 なぜでしょう。。。 下では書きませんでしたが、パスワードをacerolaとしているのですが、 どうもパスワードでNGになっているようです。 なぜだかわかりますでしょうか? |
すいません、追記です。 どうしてパスワードでNGになったかわかったかと言うと、 サーバー側のログを見て、パスワードでNGになっていることを確認 しております。 |
>>2049 幸江 > HTMLはYahoo!のトップなどです。 可能です。HTTP をしゃべりたいなら http://X68000.startshop.co.jp/~68user/net/ を参考に自分でダウンローダを作るか、wget、fetch、lynx などの ダウンローダを使うとよいでしょう。 例として Yahoo! を出しているのならよいのですが、もし他人の ページの一部を持ってこようとしておられるなら、相手の許可を 得てからにしましょう。 >>2050 snow > 普通にftpコマンドで繋げるとちゃんとつながりますし。 なるほど。 o ftp コマンドではログインできる o -d オプションによるデバッグ表示を見ても、正しいパスワードを 送信しているように見える o パスワードには * や ? などの文字は含まれていない (シェルがワイルドカードを解釈しているわけではない) ということですね。謎です。 ftp コマンドで debug モードを ON にしてみると何かわかりませんか? % ftp ftp> debug Debugging on (debug=1). ftp> open hostname Connected to hostname 220 hostname FTP server (Version 6.00LS) ready. Name (hostname:username): username ---> USER username 331 Password required for username. Password: ---> PASS password などと表示されると思います (ftp クライアントによっては、 PASS **** などと何を送っているか見せてくれないかも しれませんが)。 また、認証までなら telnet でもできますので、試してみて下さい。 % telnet hostname 21 Connected to hostname. Escape character is '^]'. 220 hostname FTP server (Version 6.00LS) ready. USER username 331 Password required for username. PASS password |
お世話になっています。本当、UNIXの部屋を良く、使っています。 ところで、コマンドを自分のUNIX環境で有効にするには、どうしたら いいですか?使えないコマンドがたくさんあるのですが・・・ぜひ、 教えて下さい。先輩に聞いたら、いろいろと設定しなければならない とかで・・・詳しくは、教えて貰えませんでした。どうぞ、教えて 下さい。 |
>>2053 ゆうすけ 回答を出しやすくするために、 - OS は何か (uname -a の結果) - 例えばどんなコマンドが使えないか を挙げて下さい。 |
早速の返答ありがとうございます。uname -aの結果は、 SunOS std2ss42 5.6 Generic_105181-23 sun4u sparc SUNW,Ultra-5_10と出て来ました。 コマンドは、ジャンル別検索のゲーム(rainなど、他にもたくさん)です。 よろしく、お願いします。 |
フラットヘッド型スキャナについての機能と仕組みはなんですか?フラットヘッド型スキャナの製品の一例を紹介してください。また工夫されている点を解説してください。 |
ネットワークプログラミングの初心者です。今、仕事で始めたばかりなのですが、inet_atonを使う場合のライブラリは、何を指定すればいいのでしょうか?-lnsl -lsocketではダメなようで。。。教えていただけると、大変たすかります。よろしくお願いします。 |
>>2057 たかし > inet_atonを使う場合のライブラリは、何を指定すればいいのでしょうか? > -lnsl -lsocketではダメなようで。。。 こういう場合には OS とそのバージョンを書かないと無意味です。 inet_aton はない場合もあるので、inet_addr でも使って下さい。 例えば、Solaris 2.5.1 には inet_aton はありませんでした。 (でも、inet_ntoa はあるけど…。) 詳しいことは man inet_addr してください。 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { printf("%x\n", inet_addr("192.168.0.1")); return 0; } |
>>2052 68user 回答遅れてすいません。 >ftp コマンドで debug モードを ON にしてみると何かわかりませんか? passwdの部分がXXXXになってしまい、よくわかりません。 それに、ftpコマンドは通常どおり通るので、プログラムでどこが正常で ないのかはちょっとわかりません。 再度プログラムをダウンロードしてトライしてみます。 |
>>2055 ゆうすけ > uname -aの結果は、SunOS std2ss42 5.6 Solaris2.6 ですね。「UNIX の部屋」は基本的に FreeBSD に ついて書いてますので、Solaris にないコマンドはいっぱいあります。 基本的にインストールしたいものがあれば、ソースを持ってきて 自分でコンパイルします。ソースのありかは http://ftpsearch.lycos.com/?form=medium で調べるとよいでしょう。例えば foo-1.1.tar.gz を取得したら % gzip -dc foo-1.1.tar.gz | tar zxvf - で展開し、 % cd foo-1.1 % ./configure % make % make install という流れになります (これほど簡単にはいかない場合がほとんどですが)。 また、sunsite というコンパイル済みのものを配布している ところがありますが、あまり数は多くないです。 http://sunsite.sut.ac.jp/sun/solaris-binaries/sparc/ >>2058 rosegarden > Solaris 2.5.1 には inet_aton はありませんでした。 Solaris2.6 にも Solaris7 にも inet_aton はありませんでした。 >>2010 もっち https でのアクセスは実現できましたか? 結果報告をお待ちして おります。 |
いつもお世話になっております。 今度はSMTPについての質問なのですが…… SMTPサーバに接続した後最初にクライアント側で行うことは、HELO(またはEHLO) を送ることですよね。でも、なぜこういうことをするようRFCで定められている のでしょうか?これがなければ生じる不具合はどういったものが考えられるので しょうか?「SMTP EHLO 解説」をキーワードにしてGoogleで検索しましたが、 決定的なものが見つかりませんでした…。他に「オライリー・ジャパン」から 出版されている「Sendmail システム管理」なる本も読みましたが、なんかこの 部分だけ意図的に説明を避けているみたいで… (^^;; 何とぞよろしくお願いします。 |
>>2061 skel.103M とりあえずこちらを。 http://djbdns.jp.qmail.org/djb/smtp.html 知りませんでしたが、envelope がクリアされるらしいですね。 |
>>2061 skel.103M > SMTPサーバに接続した後最初にクライアント側で行うことは、 > HELO(またはEHLO)を送ることですよね。 とは限りません。うちなんかだと次のようしても メールが送れるようになっています。 % telnet mail 25 Trying xxx.xxx.xxx.xxx... Connected to mail.hogehoge.co.jp. Escape character is '^]'. 220 mail.hogehoge.co.jp ESMTP Postfix MAIL from:<rosegarden@hogehoge.co.jp> 250 Ok RCPT TO:<rosegarden@isp.net.ne.jp> 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> This is a test. . 250 Ok: queued as 9CEF017A4A quit 221 Bye Connection closed by foreign host. > でも、なぜこういうことをするようRFCで定められている > のでしょうか? RFC 821 や RFC 2821 をざっと見た限りだと MUST とか SHOULD とかいう表現はありませんね。 それから、sendmail の operation guide をみると PrivacyOptions の項に public Allow open access needmailhelo Insist on HELO or EHLO command before MAIL needexpnhelo Insist on HELO or EHLO command before EXPN noexpn Disallow EXPN entirely, implies noverb. needvrfyhelo Insist on HELO or EHLO command before VRFY とあるので、このことからも、HELO や EHLO をどうするかには 任意性があるように思えます。 Postfix でも main.cf.default をみると smtpd_helo_required = no なんていう設定項目があります。 ということは、設定の際に任意性があるわけです。 おそらく、デフォルトでインストールすれば、HELO なしで 通る場合が多いでしょう。 |
>>2062 68user > とりあえずこちらを。 > http://djbdns.jp.qmail.org/djb/smtp.html > 知りませんでしたが、envelope がクリアされるらしいですね。 失礼しました。蛇足の書き込み申し訳ありません。 |
「ネットワークプログラミングの基礎知識」 http://X68000.startshop.co.jp/~68user/net/ に「SSL でアクセスしてみよう」 http://X68000.startshop.co.jp/~68user/net/ssl.html を追加しました。 サンプルソースがほとんど http://stingray.sfc.keio.ac.jp/security/ssl/ssl.html のパクリというのが情けない…。 |
ときに、UNIX+Java+Java servlet+JDBC+Postgres+ XML+XSLT な解説って需要ありますか? 書きたくはあるけれど、普通の ISP では Java servlet なんて 使えないだろうなぁ…。 |
どうも、skel.103Mです。 素早いフォローありがとうございます。>68user様・rosegarden様 >>2063 rosegarden > > でも、なぜこういうことをするようRFCで定められている > > のでしょうか? > > RFC 821 や RFC 2821 をざっと見た限りだと MUST とか SHOULD > とかいう表現はありませんね。 RFC2821には MUST や SHOULD なる表現があります。RFC2821の 4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)の第2段落にある以下の記述が これに該当すると思います: > A client SMTP SHOULD start an SMTP session by issuing the EHLO > command. & > In any event, a > client MUST issue HELO or EHLO before starting a mail transaction. RFC2821はRFC821を破棄したわけですから、クライアントによるHELO(また はEHLO)コマンドの発行が新しく*必須*となったと考えてよいと思われ ます。その理由っていったい何なんでしょう??私にはさっぱり想像 できないんですけど……。そこで、 >>2062 68user > とりあえずこちらを。 > http://djbdns.jp.qmail.org/djb/smtp.html を見てみましたが、これによると、「サーバ 実装者には HELOなしの世 界への将来の転換をサポートするように、 クライアント が HELOを省略 させるようにしむけることを推奨します。」という記述があるんです けど。…これってHELO(またはEHLO)の存在意義はないと言ってるよう にとれるんですけど……私だけ? (^^;;; > 知りませんでしたが、envelope がクリアされるらしいですね。 ご紹介いただいたWebページはqmailの実装をもとにして記述されたもの のようですが、RFC2821にはそれを示唆する部分は見つけられませんでし た。 う〜む…… |
>>2067 skel.103M > > > でも、なぜこういうことをするようRFCで定められている > > > のでしょうか? > > > > RFC 821 や RFC 2821 をざっと見た限りだと MUST とか SHOULD > > とかいう表現はありませんね。 > RFC2821には MUST や SHOULD なる表現があります。RFC2821の > 4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)の第2段落にある以> 下の記述が > これに該当すると思います: なるほど、おっしゃる通りです。 私は 3.2 を見ていました。 かえって勉強になりました。ありがとうございます。 |
はじめまして。 いつも勉強させていただいています。 質問なのですが、 UNIXでファイルのバージョンを管理するコマンド(TOOL!?)って デフォルトであるのでしょうか? ちなみに、 # $Id: echo-server-select.pl,v 1.1 2001/04/21 18:56:41 68user Exp $ ↑は、どのようにやっているのでしょうか? (※勝手に引用させてもらいすいません。) |
>>2067 skel.103M うーむ、私のレベルではちょっとついていけませんです。無念。 >>2069 @km > UNIXでファイルのバージョンを管理するコマンド(TOOL!?)って > デフォルトであるのでしょうか? UNIX と言ってもいろいろあります。何をお使いですか? # 上の「使い方」のところにも書いてあるように、OS やバージョンを # 必ず書いて下さい。 無料で利用できるものならば、RCS と CVS があります (SCCS はよく知らない のでパス。今でも現役なのかしら)。FreeBSD, NetBSD, OpenBSD なら両方デフォ ルトで入っています。Solaris なら両方ともデフォルトでは用意されていませ ん (当然ですがインストールすれば使えます)。Linux はわかりません。 両者の特徴はこのページをどうぞ。 http://www2.noritz.co.jp/anchor/ashp/peggy/cvs/cvs_rcs.html このサイトのコンテンツは CVS で管理しています。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/ http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi.diff?r1=1.1&r2=1.2&f=h のように、ファイルの修正履歴が残ること、変更点を容易に把握できること、 ネットワーク経由でアクセスできることが利点です。 > $Id: echo-server-select.pl,v 1.1 2001/04/21 18:56:41 68user Exp $ > ↑は、どのようにやっているのでしょうか? $Id:$ という文字列を埋め込んでおけば、勝手にバージョンや更新時刻や更新 者名が埋め込まれます。この機能は CVS, RCS 両方に備わっています。 CVS については書籍も4冊ほど出ていますし、解説しているサイトもたくさん ありますので、興味があれば google などで検索してみて下さい。 |
>>2070 68user > >>2067 skel.103M > うーむ、私のレベルではちょっとついていけませんです。無念。 68user様が >>2062 68user で紹介されていたサイトは http://www.google.com/search?as_q=SMTP&num=10&btnG=Google+%8C%9F%8D%F5&as_epq=&as_oq=HELO+EHLO&as_eq=&lr=lang_ja&as_occt=any&as_dt=i&as_sitesearch= などでヒットしたサイトのうち最初に出てきたものですよね。上記検索 結果の4つ目付近にある http://spica.u-aizu.ac.jp/study/material/2000-10-17/neo-study3.pdf の7ページ目には次のように書かれていました: 「sender-SMTPとreceiver-SMTPを識別するためのコマンド」 …これは正しいのでしょうか? これに関する質問は今回限りということで何とぞよろしくお願いします。 m(__)m |
どなたかご存じでしたら教えて下さい。 当方、Cygwin on Win95 な環境で Wanderlust on XEmacs として mail 環境を 構築しています。 今回、更に fetchmail & Maildrop を使用して、mail を local に取り込もうと しています。 Maildrop で local spool に取り込み、Wanderlust で読むとすれば、Maildir 形式になるかと思い、試行錯誤の上、何とか Maildir 形式で取り込めたのですが、 Wanderlust で読み込む段になって困ってしまいました。 Maildir 形式だと、new/ -> cur/ の mail 移動を行う際に、path にl `:' を 含めてしまうんですね。 Windwos では、path に `:' を含めることが出来ないため、ここから先に進む ことが出来ません。 どなたかこの様な状況を解決された方はいらっしゃいませんでしょうか。 |
はじめまして、いつも参考にさせてもらっております。 どなたかご存知でしたら教えてください。 指定ディレクトリ以下のファイルで、ディレクトリのみ表示する ことは可能ですか? ちなみにla -dでは出来ませんでした。 |
>>2073 harap find <DIR> -type d で可能だと思います。詳細は「man find」で。 |
>>2074 skel.103M ありがとうございました。 うまくできました。 |
たびたびすいません。 現在Cシェルにてプログラムを作成中なのですが echoで表示している文字列にカラー設定することは可能でしょうか? |
>>2071 skel.103M > 「sender-SMTPとreceiver-SMTPを識別するためのコマンド」 > …これは正しいのでしょうか? ん〜、HELO で envelope がクリアされるなら、中継サーバは HELO をしゃべっちゃいけないので、結果として識別できるの かなぁとは思うのですが…。どうなんでしょう。 >>2076 harap > echoで表示している文字列にカラー設定することは可能でしょうか? 端末に依存しますが、可能です。 perl -e 'print "\x1b[31m"' (赤) perl -e 'print "\x1b[32m"' (緑) perl -e 'print "\x1b[30m"' (黒) などなど。kterm や TeraTerm などならこれで OK でしょう。 echo ^[[32m でもいいです (^[ の部分は直接 ESC 文字を打ち込みます。tcsh 上なら C-v ESC、emacs 上なら C-q ESC)。 perl -e 'print "\x1b[31mhoge\x1b[32mfuga\x1b[30m"' などと続けて書いてもいいです。 # 他にコントロールコードを直接出力できるコマンドって # ありましたっけ? (stty とか tset の方面で) google で「エスケープシーケンスード ESC 色」などで検索して みて下さい。 >>2072 Ten うーむ、Windows でメールを読まないので…。 |
>>2077 68user ありがとうございました。 お礼が遅くなってすいませんでした。 やってみます。 |
はじめまして。 最近UNIX-CでNetwork Programmingを始めた者です。よろしくお願いします。 こちらに掲載されているC言語のechoプログラム(echo-server-1.c)を そのまま書き写して実行したのですが、先頭の1文字しか返ってきません。 read_line()の戻り値が [0 or 1] なので、 94行目で、文字列が1文字だけになってしまいます。 read_line()の戻り値を [0 or 文字数] に修正すればよいと思います。 私の勘違いでしたらすみません(^^; |
>>2079 るは ありがとうございます。テスト不足で失礼しました。修正しておきます。 最初はちゃんと動いていた気がするんだけど、いつエンバグしたのかなぁ? |
いつもお世話になってるskel.103Mです。 >>1978 skel.103M >>1980 68user >>1981 skel.103M このことについて、news:fj.mailに記事が投稿されているのを(今さらなが ら)発見!: Message-ID: <tzzlmmezl9x.fsf@nightmare.hm.taito.co.jp> …投稿日は2001/06/27(水)となってますね。 |
はじめまして。 perlを勉強中の者です。 いきなりで恐縮ですが、質問です。 perlのIO::SOCKETモジュールを使ったhttpクライアントを作っているのですが 画像を読み込めないんです。ちなみに、htmlはうまくいっています。 今作っている物では、他サーバーからファイルを読みとり 自分のサーバーに保存という作業をやらせたいんです。 しかし、画像ファイルを読み込むと改行が不要な位置に 改行入ってしまいます。 画像も読み込めるようにするにはどう作りかえたら良いのでしょうか? ソース http://uchu.hypermart.net/image.txt |
>>2082 猫じゃらし ちゃんと環境を書きましょう。Windows ですか? 1. ヘッダもそのまま 2.gif に出力してしまう。 2. 改行が入ってしまうなら、Windows でテキストモードになっているのかも。 ということで、 # ヘッダまでを読み飛ばす while (<$remote>){ last if ( $_ eq "\n" || $_ eq "\r\n" ); } # ここからが画像データ while (<$remote>){ $outdata .= $_; } open(OUT, "> 2.gif"); binmode(OUT); print OUT "$outdata"; close(OUT); でどうでしょう。 foreach を使わず while を使うのは、foreach の () 内はリストを要求する ので、<$remote> はリストコンテキストで評価され、 foreach ("1行目のデータ", "2行目のデータ", ..., "最終行のデータ"){ と展開されてしまうからです。よって、 foreach (<$remote>){ last if ( $_ eq "\n" || $_ eq "\r\n" ); } の時点でファイルハンドル <$remote> から全てのデータを読み 切ってしまうので、last で抜けた後には <$remote> という ファイルハンドルにはデータが残っていません。 foreach (scalar(<$remote>)){ で強制的にスカラーコンテキストにするならいいんですが、 この場合は素直に while を使った方がよいでしょう。 |
>>68user 環境を書き忘れてすいません、マナー違反でしたね、、、 ちなみに、環境はWinMEでActivePerlを動かしている状態です。 さて、68userさんのレスにあったものをペーストして ソースは下のようになりました。 http://uchu.hypermart.net/image2.txt これで無事動かすことができました。ありがとうございます。 このHPは、これからも勉強参考にさせてもらいますね。 ではでは、、 |
はじめまして超初心者の者です。 質問なのですけど会社で渡されたCシェルのプログラムに mailx -s というコマンドがありまして調べても見つかりません。 UNIXのことなどさっぱり分からないので困っています。 知っている人がいたら教えてください。 お願いします。m(__)m |
>>2085 kazu ちゃんと OS 名やバージョンなどの情報を書きましょう。 > mailx -s mailx は SystemV 系 UNIX のコマンドです。Linux にも あるようですが、*BSD にはないはずです (FreeBSD なら ports で mail/mailx がありますが)。 まぁメールの送信だけなら mail も mailx も同じようなもの なので、そのまま mail に読み変えればよいでしょう。 |
はじめまして。早速なんですが、UNIXの運用について質問があります。ログインユーザーごとに使用したい文字コードが違うんですが、どのように設定したらよいのでしょうか?教えてください。 |
>>2087 sato.k ログインユーザごとに ~/.cshrc や ~/.profile で setenv LANG ja_JP.eucJP とか LANG=ja_JP.eucJP; export LANG とか書くか、/etc/profile や /etc/csh.cshrc でユーザ名をみて 適切な locale を設定するのはどうでしょうか。 具体的な locale 名や、/etc/ の下のファイル名などは OS によって違いがあるので、お使いのシステムではどうなって いるか確認して下さい。 FreeBSD なら /etc/login.conf に各ロケール分のログイン クラスを作るのもいいかな。 |
>>2079 るは > こちらに掲載されているC言語のechoプログラム(echo-server-1.c)を > そのまま書き写して実行したのですが、先頭の1文字しか返ってきません。 遅くなりましたが、さきほど直しました。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/echo-server-1.c ご指摘ありがとうございました。 |
UNIX の部屋をやっと CVS に突っ込みました。悲願達成。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/unix/ これで思う存分更新ができます。 - コンテンツをローカルでも修正し、web サーバでも修正して、 どっちが最新版かわからなくなる - 前回から更新した部分はどこだったろうか? と忘れてしまう という経験がある方は、CVS で管理してみてはどうでしょうか。 僕はもう CVS なしでは生きていけません。 なお、普通は http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/ のように cvsweb でリポジトリ公開なんてことはしません (笑) 公開しなくても CVS で管理できます。 |
>> こちらに掲載されているC言語のechoプログラム(echo-server-1.c)を >> そのまま書き写して実行したのですが、先頭の1文字しか返ってきません。 >遅くなりましたが、さきほど直しました。 \nの所に\0を書き込んでる気がします。 |
#2091 >\nの所に\0を書き込んでる気がします。 よく見たら、そんなこと有りませんでした。 訂正します。 |
かなりどうでもいい話題なんですが、UNIX の部屋の検索で一件もヒットしな かったキーワードを調べてみました。対象は 2001 年。括弧内は検索回数。 なんとなく現在足りない情報がわかって興味深かったです。 今後の参考にさせていただきます。 Solaris or SystemV 系 … 特に管理系がいまいち弱くて申し訳ない。 useradd(541) sar(378) ufsdump(161) pkgadd(146) mailx(145) dbx(95) groupadd(88) usermod(74) ufsrestore(60) usradd(55) nawk(54) userdel(54) pkginfo(54) vfstab(50) sjtoeuc(40) こんなのふつー載ってるだろ系 … なるべく早く書きます ssh(242) expr(172) scp(149) a2ps(108) iconv(95) chroot(57) pushd(52) ulimit(49) slogin(39) rcs(38) bz2(36) Windows の用語をそのまま打ち込んだ系? rename(171) mv のところに「Win で言うところの rename」と書いておけばよい? tracert(36) traceroute のところに「Win で言うところの tracert」と書いておけばよい? tree(46) これは find かなぁ。 68user の弱い方面系 … 申し訳ない。満足な解説書けません。 lpr(328) arp(194) cpio(177) iostat(102) rsync(79) バックアップ(73) lpq(64) プリンタ(58) restore(56) mkfs(55) mknod(54) こんなの検索するんだ… sccs(53) プリント(50) lpstat(43) snmp(39) パーティション(39) これ何? 系 … 誰か教えて。 snoop(161) ipcs(112) fdisk(90) filec(66) ndd(43) showrev(52) ipconfig(53) ioscan(51) mpstat(44) substr(45) perl? 入力が不適切系 … 全角アルファベットはないのですよ。半角に自動置換しようかしら。 ls(196) ユーザー(166) ユーザならあるんですけど 解凍(150) 展開で統一してます。改善予定 ftp(127) cp(106) ln(90) ps(85) rm(54) リダイレクション(49) その後「リダイレクト」で検索してくれただろうか df(48) クーロン(43) これは改善予定 mv(40) csh(35) その他: select(91) bdf(88) atol(85) ファイル検索(70) logger(68) 需要あるのかなぁ。 pdf(63) ファイル名変更(54) flock(54) htpasswd(53) うーん samba(43) jar(42) なぜ jar が gateway(41) access(36) ちなみに検索にヒットしたキーワードのトップ20はこちら (リンクを たどったものは除く。訪問者が入力したキーワードのみ)。 tar(7512) grep(3832) find(3219) ftp(2502) ls(2490) vi(2370) cp(2215) ps(1799) rm(1773) chmod(1677) gzip(1528) cron(1511) ln(1368) mount(1352) crontab(1330) sed(1257) make(1188) awk(1150) mail(1034) date(1047) |