0

我的代码:

<?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 地址发送请求吗?

4

2 回答 2

1

不,您不能使用用户 IP 地址发送请求。

HTTP_X_FORWARDED_FOR但是,您也许可以通过使用请求标头或类似文件来指示该请求是代表另一个 IP 执行的,但无需查看他们的文档(这似乎不是公开可用的)我不能确定其中。你需要问他们。

于 2012-10-08T08:45:37.783 回答
0

这是一个旧线程,但是,让我投入两分钱。有两种新的 wialon 身份验证方法 Token login 和通过传递 athorization hash 。第二种方法最适合跨服务器维护会话。

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'];
于 2015-11-06T06:59:34.837 回答