2012-10-08 82 views
0

我的代码:Wialon远程API登录

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

回答

1

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

但是,你也许能够表明该请求是代表另一个IP的使用HTTP_X_FORWARDED_FOR请求头or similar执行,但不看他们的单证(这似乎并没有公开提供),我可以不能确定。你需要问问他们。

0

这是一个古老的线程,但让我把我的两分钱。有两种新的wialon身份验证方法令牌登录并通过传递哈希值。第二种方法最适合维护跨服务器的会话。

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