javascript - 如何在 javascript 或 php 中查找运营商名称

标签 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/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>

最佳答案

如果您可以直接获取此信息,这将是一个安全问题。浏览器在沙箱中运行,不应该能够获取该数据。

您可以记录 IP 地址并查找每个运营商的范围。我认为这是一个明智的猜测。

您可以从例如http://whois.arin.net/ui

AT&T
32.0.0.0 - 32.255.255.255 
166.128.0.0 - 166.255.255.255 

关于javascript - 如何在 javascript 或 php 中查找运营商名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194309/

相关文章:

javascript - 模糊背景图像,但保持图像聚焦收件箱区域

javascript - 使用 jQuery 缩放后检索背景图像的大小?

php - 从 WordPress 搜索结果中分离帖子和页面

php - 谁能告诉我的 mysql 查询出了什么问题

php - 如果 woocommerce 订单包含特定产品类别的商品,则发送电子邮件

iPhone - 如何确定设备的运营商(AT&T、Verizon 等?)

javascript - 单击表单上的提交按钮后添加加载程序(加载程序不断重复)

javascript - jquery中如何使用map函数?

android - 我的 Android 应用程序能否在任何给定时刻知道并检测手机在哪个运营商下运行?