2017-04-19 4 views
0

私の質問がダムであるか、悪い用語を使用していても、私はウェブプログラミングに全く新しいです。インターネットからのみウェブページへのログイン

私はラズベリーパイにApacheサーバーを作成しましたが、私の部屋のライトを制御するためのWebページ上のボタンはほとんどありません。私は私の公衆IP 188.75.xxx.xxxを使用して私の家のネットワークIP 192.168.xxx.xxxとインターネットからそれにアクセスすることができます。 (ちょうど明らかに - raspiは私のルータに接続されていて、ルータには私はそれにポート80を転送しています)

私は188.75.xxx.xxxのトラフに接続しています。 。そして、私がくぼみに合っているならば、192.168.xxx.xxxのフォームは表示されません。

これを達成する方法はありますか? ありがとう、 アダムN.

答えて

2

スクリプトが実行されると、ユーザーに何かを表示する前にIPアドレスを確認します。手順についてはhereをお読みください。 IPアドレスを取得したら、それを解析して最初の2つのグループを見ることができます。それを行うにはthisのようなものを試してみてください。その後、番号を比較し、ページにアクセスする許可を与えるか否かを決定します。 Here PHPのログインフォームについて読むことができます。擬似コードでは、それはそれのようになります。

// this is pseudo code, don't try to run it - it will not work 
$ip = get_ip(); 
$groups = parse_ip($ip); 
if (is_home_network($groups)) 
{ 
    grant_permissions(); 
} 
else 
{ 
    request_login(); 
} 
1

あなたが検証フィルタFILTER_VALIDATE_IPとフラグフィルタFILTER_FLAG_NO_PRIV_RANGEでPHP filter_var機能を使用することができます。

コード例:

if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) 
{ 
    // is not a local ip address 
} 

私はあなたを助けることができる願っています。

関連する問題