最終更新日

失われたソースファイル 2

コピーアンドペースト用の記事

失われたソースファイル 2

ありがちなんだけど良くなくしてしまうスクリプトファイルなどを おいておく場所です。

自分のグローバルIPを他の人に通知する PHPスクリプト

ルータを使っていると、他の人に自分のグローバルIPを通知するのは結構大変です。 IPがルータにふられているので、ルータにログインしたり、適当に trace うってみたり・・・。

ということで、外部の Webサーバに自分のグローバルIP をとってもらって、保存しておいてもらうスクリプト。他の人には このページをみせれば通知できます。

本気で適当なので、クロスサイトスクリプティングとかにはご注意を。 ipaddress.txt というファイルを書けるようにしてご利用ください。

<?php

$result = "";
$current_ipaddress = "";

if (isset($_SERVER['REMOTE_ADDR'])) {
    $current_ipaddress = $_SERVER['REMOTE_ADDR'];
}

if (isset($_POST['action']) == "regist") {

    // POST異常
    if(!isset($_POST['ipaddress'])) {
        die("呼出し元 HTMLが不正です");
    }
    // 一応洗浄
    $ipaddress = htmlspecialchars($_POST['ipaddress']);
    // ファイルに書き込む
    if(!$fno = fopen("ipaddress.txt", 'w')) {
        die("ipaddress.txt が作成できませんでした");
    }
    fputs($fno, "$ipaddress");
    fclose($fno);
}

if(!$fno = fopen("ipaddress.txt", 'r')) {
    die("ipaddress.txt を開くことができませんでした");
}
$result = fgets($fno);
fclose($fno);

?>
<html>

<head>
<title>今日のIPアドレス君</title>
</head>

<body>

<h1>今日のIPアドレス君</h1>

<hr>
<p>
今日のサーバのIPアドレスは、
</p>
<p>
<a href="ftp://<?php echo $result?>/" style="margin-left: 1em;">ftp://<?php echo $result?></a>
</p>
<p>
です。ここにきてね。
</p>
<hr>

<div style="border: 1px solid gray;margin: 0.5em;padding: 0.5em;color: gray;margin-top: 3em;">
<p>
サーバ管理者用フォーム
</p>
<table style="margin-left: 1em;">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
<tr>
    <td style="color: gray;">
        サーバIPアドレス
    </td>
    <td>
        <input type="text" size="32" value="<?php echo $current_ipaddress?>" name="ipaddress">
    </td>
</tr>
<tr>
    <td> </td>
    <td style="text-align: right;">
        <input type="submit" class="button" value=" 更新 ">
    </td>
</tr>
<input type="HIDDEN" name="action" value="regist">
</form>
</table>
</div>

</body>

</html>

おわり

使い終わったら、127.0.0.1 とか登録して掃除しておいた方が いいでしょう。 だれかが見ていたら怖いです。