回答:
PHPやPerlなどのサーバーサイドのスクリプト言語を使用してこれを実装するのがおそらく最も簡単です。ただし、スクリプトへの入力はユーザーが制御できるので、入力として使用するときは十分に注意する必要があります。
以下に例を示します(私はWebコーダーではないので、このコードには重大なセキュリティ問題がある可能性があります。細心の注意を払って使用してください)。
#!/usr/bin/perl -wT
# Send HTTP content-type
print "Content-type:text/html\r\n\r\n";
my $requester_ip;
# Do some sanity checking on the IP send by the webserver
if ( $ENV{'REMOTE_ADDR'} =~ m/(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)/ ) {
my $requester_ip = $1;
} else {
print "An error occurred\n";
exit;
}
# Open SMTP for the requester
`sudo iptables -A INPUT -d $requester_ip -p tcp --dport 25 -j ACCEPT`
これを使用したい場合は、Webサーバーユーザーがこの特定のコマンドでsudo
のみ実行できることを確認してください。繰り返しますが、このコードは有用であることを期待して提供されていますが、特定の目的に対する保証または適合性はありません。
2段階のプロセスでこれを行うのがさらによいでしょう。
iptables
。