スレッド一覧 > 記事閲覧
[244] CGIファイルの読み込みについて
日時: 2024/02/04 10:39
名前: からから ID:xa76gH02

ちらみ様、こんにちは。いつもお世話になっております。
この1年ほど、家Tサーバーを利用させて頂いている者です。
いつもスペースのご提供、ありがとうございます。

本題なのですが、こちらで設置させて頂いている.cgiファイル(Perl)に関して、先月くらいから一部のページの読み込みが遅くなっているようでして(ページによっては長くて8秒前後、読み込みまでに時間がかかるものもあるようです)、何か制限などをおかけになられましたでしょうか?
またはこちらで何か変な設定をいじってしまったのでしょうか…。
もしそちら側の設定のご都合でしたら無料で利用させて頂いている身ですのでこのままでも全く問題ないのですが、少し気になったもので質問だけさせて頂いた次第です。

置かせて頂いているサイトはほとんどのページがCGIで構成されている作りになっているので、サーバー様に負荷などをかけてご迷惑をおかけしておりましたら大変申し訳ないです…。
もしこちらのサイトに何か問題がございましたら対処させて頂きたいと思っております。

アカウント名は hobi です。

以上、もしよろしければ、ご返信をお待ちしております。
メンテ

Page: 1 | 全部表示 スレッド一覧 新規スレッド作成

Re: CGIファイルの読み込みについて ( No.5 )
日時: 2024/02/07 21:15
名前: からから ID:KHqvuTyA

ちらみ様、ご返信頂きありがとうございます。
昨日は時間が取れず、返信が遅くなってしまい失礼いたしました;

ちらみ様のご返信を受け、自己解決することができました!
どうやらCGIファイルに記述していたコードに原因があったようです…
少し考えれば自分で解決できそうなところを、お手を煩わせてしまい大変失礼いたしました…

以下、解決した方法を記載しておきます。

CGIファイル(Perl)のアクセス者のホスト情報を取得する際の記載部分を

原文:
$host = $ENV{'REMOTE_HOST'};
my $addr = $ENV{'REMOTE_ADDR'};
if($host eq "" || $host eq "$addr"){
  ($p1,$p2,$p3,$p4) = split(/\./,$addr);
  $temp = pack("C4",$p1,$p2,$p3,$p4);
  $host = gethostbyaddr($temp, 2);
  if($host eq ""){ $host = $addr; }
}



改変後:
$host = $ENV{'REMOTE_HOST'};
my $addr = $ENV{'REMOTE_ADDR'};
use Socket qw(getaddrinfo getnameinfo);
if($host eq "" || $host eq "$addr"){
  my ($err1, @result) = getaddrinfo($addr);
  if($err1){ $host = $addr; return; }
  my ($err2, $hostname) = getnameinfo($result[0]{addr});
  if($err2){ $host = $addr; return; }
  $host = $hostname;
  if($host eq ""){ $host = $addr; }
}

このように直したら読み込み速度が改善しました。
IPアドレスの仕組み等については詳しくないためこうする事でどうして改善できたのかは理解できてない頭なのですが…。

お忙しいところお時間を取って頂きありがとうございました。
コードの記述等にもし問題が見られそうでしたらご指示のように致しますので、どうかご教示ください。

それでは、大変失礼いたしました。
ご対応頂きありがとうございました!
メンテ

Page: 1 | 全部表示 スレッド一覧 新規スレッド作成

題名
スレッドをトップへソート
名前
「名前#任意の文字列」でトリップ生成
E-Mail
入力するとスレッドの通知メールを受け取れます。(非表示)
URL
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存