Wialon远程API登录

时间:2012-10-08 08:23:36

标签: php session request

我的代码:

<?php
   if(isset($_GET['login']) && isset($_GET['login']) && isset($_GET['password'])){
      $_login_url = "http://testing.wialon.com/wialon/ajax.html?svc=core/login&params={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地址发送请求吗?

2 个答案:

答案 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'];