如何找到承运人';javascript或php中的用户名
我需要为每个访问我的网页的移动设备创建一个唯一的id。我已经得到了用户的屏幕分辨率、浏览器、操作系统和位置,但我还想知道运营商的名字,以便更准确 到目前为止,我已经:如何找到承运人';javascript或php中的用户名,javascript,php,carrier,Javascript,Php,Carrier,我需要为每个访问我的网页的移动设备创建一个唯一的id。我已经得到了用户的屏幕分辨率、浏览器、操作系统和位置,但我还想知道运营商的名字,以便更准确 到目前为止,我已经: <script type="text/javascript" language="Javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text
<script type="text/javascript" language="Javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" language="Javascript" src="http://api.easyjquery.com/easyjquery.js"></script>
<?PHP
$browsers = array ();
$osS = array ();
$tb_query=mysql_query("SELECT * FROM cst_unique_device_index");
while ($rw_query=mysql_fetch_array($tb_query)){
extract ($rw_query);
$variable = strtolower($variable);
if ($type == 2) $browsers[] = $variable;
}
$osS = array (
"android",
"bada",
"blackberry",
"brew",
"ios",
"lg",
"linux",
"motorola",
"nintendo",
"palm",
"playstation",
"samsung",
"series",
"sony",
"symbianos",
"unknown",
"webos",
"wince",
"windows");
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach($browsers as $browser)
{
if (preg_match("#($browser)[/ ]?([0-9.]*)#", $agent, $matchBrowser))
{
$user_browser = $matchBrowser[1] ;
$user_browser_version = $matchBrowser[2] ;
break ;
}
}
foreach($osS as $os)
{
if (preg_match("#($os)[/ ]?([a-z0-9.]*)#", $agent, $matchOS))
{
$user_os = $matchOS[1];
$user_os_version = $matchBrowser[2] ;
}
}
echo $agent .'<br />' ;
echo '
<table>
<tr>
<th>Screen: </th>
<td id="user_screen"></td>
<td></td>
</tr>
<tr>
<th>Browser: </th>
<td>' . $user_browser . '</td>
<td></td>
</tr>
<tr>
<th>OS: </th>
<td>' . $user_os . '</td>
<td></td>
</tr>
<tr>
<th>State: </th>
<td id="user_state"></td>
<td></td>
</tr>
<tr>
<th>Carrier: </th>
<td></td>
<td></td>
</tr>
';
?>
<script type="text/javascript" language="Javascript">
var screenWith = screen.width
var screenHeight = screen.height
document.getElementById('user_screen').innerHTML = screenWith+"x"+screenHeight;
// 1. Your Data Here
function my_callback(json) {
alert("IP :" + json.IP + " nCOUNTRY: " + json.COUNTRY);
}
function my_callback2(json) {
// more information at http://api.easyjquery.com/test/demo-ip.php
//alert("IP :" + json.IP + " nCOUNTRY: " + json.COUNTRY + " City: " + json.cityName + " regionName: " + json.regionName);
document.getElementById('user_state').innerHTML = json.cityName;
}
// 2. Setup Callback Function
// EasyjQuery_Get_IP("my_callback"); // fastest version
EasyjQuery_Get_IP("my_callback2","full"); // full version
</script>
var screenWith=屏幕宽度
var screenHeight=screen.height
document.getElementById('user_screen')。innerHTML=screenWith+“x”+屏幕高度;
// 1. 你的数据在这里
函数my_回调(json){
警报(“IP:+json.IP+”NContry:+json.COUNTRY);
}
函数my_callback2(json){
//更多信息请访问http://api.easyjquery.com/test/demo-ip.php
//警报(“IP:+json.IP+”国家:+json.COUNTRY+”城市:+json.cityName+“regionName:+json.regionName”);
document.getElementById('user_state')。innerHTML=json.cityName;
}
// 2. 设置回调函数
//EasyjQuery_Get_IP(“我的回调”);//最快版本
EasyjQuery_Get_IP(“my_callback2”、“full”)//完整版本
如果您可以直接获取此信息,这将是一个安全问题。浏览器在沙箱中运行,应该无法获取该数据
您可以记录ip地址并查找每个运营商的范围。我认为这是一个明智的猜测
你可以从例如
您可以从ip地址获取用户运营商名称
<?php
$ip = $_REQUEST['REMOTE_ADDR']; // the IP address to query
$query = @unserialize(file_get_contents('http://ip-
api.com/php/'.$ip));
if($query && $query['status'] == 'success') {
echo 'Hello visitor from '.$query['country'].', '.$query['city'].'!';
} else {
echo 'Unable to get location';
}
?>
这是为我工作,我希望也为你工作。:) 我相信他的问题是:
如何从请求中获取承运人的名称?
试试这个:或者谢谢,但这些示例提供了我已经掌握的信息。我试图计算的是一个独特的设备概率,知道Android市场份额、移动操作系统市场份额、移动浏览器市场份额、移动屏幕分辨率份额和运营商市场份额。但是,根据OP的要求,此代码提供的是国家和城市,而不是运营商的名称。
<?php
$ip = $_REQUEST['REMOTE_ADDR']; // the IP address to query
$query = @unserialize(file_get_contents('http://ip-
api.com/php/'.$ip));
if($query && $query['status'] == 'success') {
echo 'Hello visitor from '.$query['country'].', '.$query['city'].'!';
} else {
echo 'Unable to get location';
}
?>