• 締切済み

ホスト名を表示するには

たぶんこの行と思うのですが、dat内容を表示するにはどのように修正すればよいのでしょうか #スレッドの投稿ログを開く open(FH,"../$_[0]/dat/$sure_id.dat"); dat内容は以下のとおりです。(ホスト名を取得するまでは、投稿内容でdatは終わってました) 投稿名</b> ★<b><><>04/3/6 22:42 ID:***<>投稿内容<>ホスト名<>

  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> #スレッドの投稿ログを開く > open(FH,"../$_[0]/dat/$sure_id.dat"); ――と、ファイルハンドルをオープンしているのだから、普通に考えたら、次は 1)ファイルハンドルから1行読み込み 2)読み込んだ行をセパレータ<>で分割。 3)分割した各項目を出力。 4)ファイルハンドルから読み込める家は、1~3を繰り返し。無ければ、ファイルハンドルをクローズ。 ――って記述になるかと。 で、このdat内容だと、第5項目がホスト名だから、2)で分割した内容が配列@recに入っているとして、 print $rec[4] ――で出力できるでしょう。 ※最初は、IPアドレスからホスト名を逆引き解決する方法の質問かと思った。 この場合は、 perl -MSocket -e 'print scalar(gethostbyaddr(inet_aton("202.210.180.30"),AF_INET))' ――とか。

m-happy-t
質問者

お礼

ありがとうございます。 ためしてみます

関連するQ&A

  • ログファイルを削除するcgiプログラム

    ログファイルを削除するcgiプログラム -------------------- $GYOUSUU = $FORM{'GYOUSUU'}; #--- ログファイルオープン open(FH,"***.log"); flock(FH,2); @FILES = <FH>; flock(FH,8); close FH; undef $FILES[$GYOUSUU]; open (FH2,">***.log"); @filew = "@FILES\n"; print FH2@filew; close(FH2); -------------------- となっているのですが、修正後にログファイルの行の頭に、半角スペースが入ってしまいます。 どこを修正すればいいのでしょうか?

    • ベストアンサー
    • Perl
  • 掲示板などでホスト名を表示させない設定をしているのですが、他の方々からは見えてしまうのですか?

    http://www.aimix-z.com/ ここの無料レンタル掲示板を使わせてもらっております。 みんなが気軽に書き込めるように、 投稿者情報の表示設定を (1)表示しない にしております。 他には (2)投稿者のホスト名を表示する (3)暗号化されたIDを表示する  (この場合、 ID:IIZCH8NZtI のようになるらしいです) 使用する人はAさんとAの友人B、Bの友人C、、、 というようなかんじの30人くらい(の予定)なのですが、 AとCは直接の知り合いではないので、 気軽に書き込めないのでは、、と思って ホスト名?は非表示にしました (…ホスト名、 これ自体なんなのかよくわかっていないのですが、、 管理人が非表示設定にすれば、 他の方々からは見れないようになりますか? (=他の方々は気にせず書き込みできますか?) よろしくお願いします。

  • Apacheが出すログでホスト名を取得したい

    Apacheの出すログでホスト名を取得したいのです。 61.207.000.00 - - [20/Jun/2004:16:07:56 +0900] "GET /web HTTP/1.1" 401 476 アクセスしたらこのようなアクセスログになりますが、このipの部分にホスト名を記録させたいのです。 バージョンは Apache/1.3.27 Linuxで運用しています。 httpd.conf のどの部分を触ればいいのか、 ご存知の方、よろしくお願いします。

  • cgiログファイルの書き込みに余計なスペースが入る。

    ---------- #ここでログファイルに書き込みを行う。 open(FH,">>log.log"); print FH"ID=$ID&COUNT=$COUNT\n"; close(FH); #ログファイルをさらに開く。 open FILE, "<log.log"; flock(FILE,2); @log = <FILE>; flock(FILE,8); close FILE; ログファイルを並び替えてその順番で書き込み。 $gyou = @log; @sort=sort{(split(/&/,$b))[1] cmp (split(/&/,$a))[1];} @log; print "<FONT COLOR=RED>@sort</FONT><BR>\n"; open(FILE2, ">log.log"); print FILE2"@sort"; close (FILE2); ---------- というように行っていますが、一番最初のID=01&とかの前に半角スペースが入ります。 下の行に行くほどスペースが増えます。 どこが原因でしょうか?

    • ベストアンサー
    • Perl
  • mod_perlでopen失敗

    cgiをapacheのモジュールで動作するようにしました。 open(IN,'>a.txt'); こちらは成功しますが、 open(OUT,'>a.txt'); こちらが成功しなくなりました。 パーミッションの確認やsuexecのログなどを見ましたが原因が分かりませんでした。 2chで下記の情報を見つけたので、僕以外にも同じことになったケースがあるみたいでした。 知っている方がいらっしゃいましたらどうしたらよいか教えて下さい。 351 :ログ補完 :04/03/29 13:16 ID:??? 351 名前: nobodyさん :sage 投稿日: 04/03/25 (木) 17:44 ID:??? もしかしてApache::Registryだとopen FH, >hoge.dat でファイルを作ってくれなくなった?

  • 行頭に変なスペースが…

    入力したデータをログファイルの一番上に入れたいために以下のようにしました。 open(FH2,"***.log"); flock(FH2,2); @files = <FH2>; flock(FH2,8); close FH2; open(FH,">***.log"); @filew = "user=$FORM{'name'}<>TIME=$FORM{'TIME'}\n@files"; print FH @filew; close(FH); こうするとなぜかログファイルの2行目以降の頭にスペースが1文字分入ります。 2個目のログファイルオープンの3行目 print FH @filew; のスペースが原因かと思い、 print FH@filew; としてみましたが、やっぱりスペースが入りました。 このスペースを入らないようにするにはどうしたらいいでしょうか?

    • ベストアンサー
    • Perl
  • Perlの省略可能な書き方

    open IN,'log.dat'; $_=<IN>; push(@a,$_); この3行を open IN,'log.dat'; push(@a,<IN>); このように2行に書き換えても文法上は問題ないですか?

    • ベストアンサー
    • CGI
  • 私のホスト名がスパムサイトに書き込まれている。

    あるきっかけで自分のPCのIPを調べていたのですが、そのとき ふとホスト名をgoogle検索したところ、なぜか、スパムサイトが ヒットしました。ヒットはこの一件のみです。 そのサイトは意味不明な内容で、表題もなにもありません。白地 にスパムメールのような文字列が延々と書き込まれたテキスト のみのサイトです。 <識別番号・アダルトメッセージ・それに関連すると思われるウェブアドレス・ホスト名> <識別番号・副収入メッセージ・それに関連すると思われるウェブアドレス・ホスト名> <識別番号・裏職業メッセージ・それに関連すると思われるウェブアドレス・ホスト名> …みたいな感じです。これが数百行続きます。 その文字列のひとつの末尾に私のホスト名が存在したわけです。 これはいったいなんなのでしょうか。そして問題があるのでしょうか。

  • テキストエリアの改行表示

    現在CGIの勉強を行っているのですが、 以下の点がうまくいかなくて困っています。 -----------HTML(例)------------------ 投稿名 :[ SAMPLE ] TITLE :[ SAMPLE1 ] TEXTAREA :[ aaaaaaaa _____________bbbbbbb] [投稿][リセット] -----------サブフレーム(bbs.cgi)----- 投稿名:[ SAMPLE ] TITLE :[ SAMPLE1 ] TEXTAREA :[ aaaaaaaa _____________bbbbbbb] ------------------------------------- 1.HTMLの方で投稿(サブフレーム形式) 2.BBS.CGIで処理を行う 3.TEXTAREAで改行を行って投稿した際の処理 (ここで投稿した際に別投稿として掲載されてしまいます。) *ソース #!/usr/local/bin/perl use CGI; #外部データの取得 $q = new CGI; #外部データの受取処理 $Name1 = $q->param('name'); $Name2 = $q->param('title'); $Name3 = $q->param('url'); $Name4 = $q->param('txt'); @FILE_FOR; $count=0; print "Content-type: text/html; charset=Shift_JIS \n\n"; #書き込み if($Name1 ne "" && $Name2 ne "" && $Name3 ne "" && $Name4 ne ""){ open(FH,">>log.dat"); print FH "$Name1,$Name2,$Name3,$Name4\n"; close(FH); } #読み込み if(!open(FH,"log.dat")){ print "読み込みに失敗しました。\n"; }else{ $F=0; foreach my $line (<FH>){ @FILE_FOR[$F] = $line; $F++; } } close(FH); #結果表示 if($F ne 0){ for($Y=$F;$Y > 0;$Y--){ $C = $Y; @BOX = split(/,/ ,$FILE_FOR[$Y - 1]); print "<CENTER>"; print "<HR><TABLE BORDER=2><TR><TD>No.$C</TD></TR>"; print "<TR><TD>投稿者:</TD><TD>@BOX[0]</TD></TR>"; print "<TR><TD>投稿タイトル:</TD><TD>@BOX[1]</TD></TR>"; print "<TR><TD>URL:</TD><TD><a href=@BOX[2]>@BOX[2]</a></TD></TR>"; print "<TR><TD>内容:</TD><TD><B>@BOX[3]</B></TD></TR></TABLE><HR>"; print "</CENTER>"; } }else{ print "現在は未投稿です。"; }

    • ベストアンサー
    • CGI
  • FFFTPのホストの設定の入力内容がわかりません

    はじめまして。 過去の類似の質問を読んでもわからなかったので、 質問させて頂きます。 FFFTPの「ホストの設定」の入力内容に関しての質問です。 自分でメモ帳を使用し、htmlでHPを作成し、 FFFTPでアップロードしようと思ったんですが、 「ホストの設定」での入力内容で何を入力すればいいかわからず、 困っています。 niftyに入会した当初の資料「契約内容と@nifty IDのご案内」は手元にあります。 入力する内容はこの資料内にある「@nifty IDのご案内」の項目内容でよろしいのでしょうか。 現状、 ホストの設定名:自由に入力 ホスト名(アドレス):「メールサーバー」に書かれている内容 ユーザ名:「@nifty ID」に書かれている内容 パスワード:「ログインパスワード」に書かれている内容 を入力していますが、接続できません。 入力する内容は全く別のところから取得するのでしょうか。 FFFTP初心者なので、質問内容わかりにくい部分あると思いますが申し訳ありませんが、 よろしくお願いします。

専門家に質問してみよう