是否可以通过 Flash (swf) Action Script 3 获取客户端 IP 地址,然后将其传递给 php 文件以将其存储在数据库中?
8 回答
无需在 Flash 中执行,只需在您的服务器上执行 php "$ip=@$REMOTE_ADDR;"
不,客户端 IP 地址在 ActionScript 3 中不可用。推荐的方法是让它反映在服务器端代码中。
见http://www.actionscript.org/forums/showthread.php3?s=&threadid=20123
function GetUserIP() {
var js="function get_userIP(){return java.net.InetAddress.getLocalHost().getHostAddress();}";
var userIPInfo:String=ExternalInterface.call(js).toString();
return userIPInfo;
}
据我所知是的!但我想知道这样做的原因。您可以只使用 PHP 获取 IP 地址..
编辑:进行了研究..改变了我的答案。我认为用 Flash 做的可能性较小..
像上面的答案一样,使用 PHP(或其他脚本语言)将 IP 地址作为参数值传递到您的 flash 电影中,您将在运行时使用它。
另一种选择是使用 ExternalInterface 调用服务器端 PHP 脚本或类似的东西以返回 IP 地址。
正如 Alex 所说,通过 flashvars 传递它,但 PHP 应该是:
$_SERVER['REMOTE_ADDR']
json 扩展对于写出 flash 变量很方便,例如用于传递给 swfobject:
var flashvars = { IP : <?=json_encode($_SERVER['REMOTE_ADDR'])?> };
尽管大多数人都在说 - 以某种方式存在差异。我曾经经营过一个相当大的论坛(200k+),大多数被禁止的成员最终在进入我们的聊天室后再次被抓获(Flash)。虽然 VB 软件(使用 php)会提供一个 IP(通常通过代理/网络),但 Chat (Flash) 实际上会给我们他们的真实 IP。不要让我解释它 - 我自己几乎没有使用 PHP ......