我的代码:
<?php
if(isset($_GET['login']) && isset($_GET['login']) && isset($_GET['password'])){
$_login_url = "http://testing.wialon.com/wialon/ajax.html?svc=core/login¶ms={user:%s,password:%s}";
$login = $_GET['login'];
$password = $_GET['password'];
$handle = fopen(sprintf($_login_url, $login, $password), "r");
$line = fgets($handle);
fclose($handle);
$responce = explode(",",$line);
if(count($responce) < 2) {
echo "Invalid user or password";
} else {
$sessid = explode(":",$responce[1]);
$lastid = str_replace("\"","",$sessid[1]);
echo "http://testing.wialon.com/index.html?sid=".$lastid."";
}
}
?>
当我使用托管脚本的服务器访问此脚本时,一切都运行正常,会话是使用我的IP地址生成的。
但是当我用另一台计算机访问它时,任何尝试登录脚本的用户都会使用服务器IP地址生成会话。我可以用用户的IP地址发送请求吗?
答案 0 :(得分:1)
不,您无法使用用户IP地址发送请求。
但是,您可以使用HTTP_X_FORWARDED_FOR
请求标头or similar来表示正在代表另一个IP执行请求,但不查看其文档(似乎不是公开可用)我不能确定。你需要问他们。
答案 1 :(得分:0)
这是一个老话题,但是,让我加入我的两分钱。有两种新的wialon身份验证方法令牌登录并通过传递athorization哈希。第二种方法最适合维护跨服务器的会话。
http://sdk.wialon.com/wiki/en/kit/remoteapi/apiref/core/create_auth_hash
http://sdk.wialon.com/wiki/en/kit/remoteapi/apiref/token/token
//从此处获取令牌http://hosting.wialon.com/login.html?client_id=wialon&access_type=-1&activation_time=0&duration=0&flags=1 //您应该拥有来自wialon的现有用户名和SDK访问权限
$params = "{'token':'$token','operateAs','$username'}";
$baseurl = "http://hst-api.wialon.com/wialon/ajax.html";
$url = "$baseurl?params=".urlencode($params)."&svc=token/login";
$o = json_decode(file_get_contents($url),true);
$sid = $o['eid'];