Google App EngineではREMOTE_HOSTが取得できません。そのため、ユーザのIPアドレスは分かりますが、ホスト名は分かりません。また、Socket APIのgethostbyipは実装されていません。

そこで、別のサーバで取得したREMOTE_HOSTをJavaScript経由で受け渡すことを考えます。REMOTE_HOSTを取得するサーバは、App Engineとは別のドメインになるため、クロスドメインポリシーを気にする必要があります。

クロスドメインを超える簡単な方法は、JSONPを使用することです。JSONPは、サーバが返り値を含むJavaScriptを返すことで、ドメインを超えます。

サーバ側のスクリプトは以下のようになります。

<?php
header('content-type: application/json; charset=utf-8');
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
print $_GET['callback'] . '("' . $hostname . '");';
?>

呼び出し側のスクリプトは以下のようになります。

<script type="application/javascript">
function get_host(host_name){
    alert(host_name); // alerts the host name
}
</script>
<script type="application/javascript" src="http://hoge/remote_host.php?callback=get_host"></script>