|
> 結果表示の際に「ホスト名」「IPアドレス」と表示されるべき > 部分が、うまく表示できません 余計な部分をどんどんコメントアウトしていって、 実質 print "ホスト名\nIPアドレス" だけのスクリプトに しても化けますか? またヘッダを Content-type: text/html; charset=Shift_JIS Content-type: text/html; charset=ISO-2022-JP などと出力して、ブラウザに明示的に文字コードを伝えても ダメですか? それでもダメならソースそのものを見せて下さい。 # どこかにそのまま置いてもらえると、文字コードなどが # わかるので調べやすいです。 > $desc のローカル変数部分の文字化けが絡むのでしょうか。 ということはないと思います。 > Windowsの環境でメモ帳などでつくるため、nkfのオプションは > -s にしました。 nkf は、CGI の出力を JIS にするために使っているだけです。 ・スクリプトを SJIS にして、出力も SJIS ・スクリプトを EUC にして、出力も EUC などという場合は、nkf は不要です。 |
|
はじめまして、yujiといいます。 たびたび参考にさせていただいています。(^^) アクセス状況チェックでは、1時間おきに更新されていますが、 これは、どのようにして定期的にプログラムを 実行させているのでしょうか? サーバー上では、cronが利用できると思うのですが、 プロバイダのほうで提供されてたりするのでしょうか。 それとも他のサーバー上で実行されているのでしょうか。 あと、linux上でPerlを書いているのですが、 LANカードとPPP接続を行った場合に、gethostbyname, inet_ntoa(inet_aton())のどちらを使ってもLANカードの アドレスが取得されてしまうのですが、 PPP接続のアドレスを取得する方法というのは、なにか ありますでしょうか? ifconfigでpppの部分だけ切り出そうかとも思ったのですが、 exec('ifconfig''); の出力をどうやって拾うのかがわかりません。(^^; なにかアドバイスなどありましたら、どうぞよろしくお願いします。 |
|
> アクセス状況チェックでは、1時間おきに更新されていますが、 cron でやってます。 http://X68000.startshop.co.jp/~68user/cgi-bin/view-script.cgi/.crontab のようなファイルを % crontab ~/.crontab として設定します。 > LANカードのアドレスが取得されてしまうのですが、 外部にソケットで接続して、getsockname で取得できるませんか? (試してません) > exec('ifconfig''); Linux の ifconfig がどういう出力をするのかわからないのですが、 open(IN,"ifconfig |"); while (<IN>){ if ( m/ppp.*(\d+\.\d+\.\d+\.\d+\)/ ){ $ip = $1; } } close(IN); という感じでしょうか。 |
|
お返事、どうもです。(^^) そうなんですか。>cron ちなみに、cronは、 どこのプロバイダでも利用できるものなんでしょうか? telnetができるところなどに限定されるんでしょうか。 >%crontab ~/.crontab 外部に接続すると、そのソケットのアドレスは、 グローバルなIPアドレスでないと困りますから、 それをgetsocknameで取得するということですよね。 ばっちりでした。(^^) Linuxのifconfigは、 (略 lo eth0など) ppp0 Link encap:Point-to-Point Protocol inet addr:*.*.* P-t-P:*.*.*.* (略) のようなカタチでして、水平タブなどを取り除いて、 .*?の最小マッチングを試してみたところ、取得できました。 外部コマンドの出力は、パイプを利用して取得すると。(メモメモ) 長くなってすいません。(^^; 今後とも、どうぞよろしくお願いします。 |
|
> ちなみに、cronは、どこのプロバイダでも利用できるものなんでしょうか? 普通の UNIX なら、おそらく使えます。ただし、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=73 のように、cron を使えないようにしているプロバイダもあります。なお、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=74 では、ソースをコンパイルすれば使えるかのような発言をしてますが、 ソースをコンパイルしても無理です。 # /var/cron をいじるために、root の権限で suid を # 立てなければいけないので。 > telnetができるところなどに限定されるんでしょうか。 そう思って下さい。crontab コマンド自体が使えるなら CGI や ~/.forward 経由でできるかもしれませんが、管理者に断らず 勝手にやるのはお勧めしません。 # CGI が nobody 権限で動いているサーバなら、nobody 権限で # cron のデータが設定されるわけで。 |
|
unixで、sqlファイルを開き、中のコードを見れる状態にしただけでは、 書きこみモードにしない限り、 SQL文の書きこみ、変更はできないようになっているのでしょうか? |