Appearance
亚马逊店铺关联是什么?怎么用 IP 归属地自查运营环境(PHP 实现)
做跨境的都知道这个词的杀伤力:一觉醒来,卖家账号平白无故被关,申诉信里躺着「关联」两个字,联系方式关联、收款关联、设备关联……但多数卖家不知道,网络环境(IP)恰恰是关联判定的第一信号。平台后台能看到你每次登录店铺的 IP:这个 IP 是家庭宽带还是机房、在哪个城市、跟你注册信息对得上不对得上,全是风险信号。
这篇文章把「关联」和 IP 的关系讲透,并给一套 PHP 自查脚本:把店铺登录记录里的 IP 批量查归属地,标出哪些是机房 IP、哪些城市跳变异常,提前发现自己的环境风险。定位是自查和科普,不教怎么绕过平台检测——合规经营才是长期生意。
一、平台为什么把 IP 当关联信号
亚马逊多账号政策不允许同一主体开多个店铺,判定「是不是同一主体」靠一堆信号交叉比对,IP 是其中权重很高的一项:
- IP 归属地一致性:店铺注册、登录、绑卡都在同一地区,这是正常经营者的特征。某天登录 IP 突然变成另一个省、另一个国家,系统就会标记异常;
- IP 类型:正常卖家用自己的家庭宽带(ISP 家庭网络)或办公室线路。大量店铺共用同一批机房 IP(阿里云、腾讯云、海外 VPS),要么是服务商代运营,要么是多个店铺同一主体,这是强关联信号;
- 登录地序列:两个店铺的登录 IP 地理轨迹高度重合(今天都在 A 省,明天都跳 B 省),重合度就是关联打分依据。
所以「自查」就有两个抓手:① 查自己登录 IP 的归属地是否稳定、是否与店铺主体地区吻合;② 查 IP 是否机房类型(IDC)。这两个信息都能从 IP 归属地接口拿到。
二、方案设计
- 从卖家平台后台导出登录记录(很多第三方 ERP 和登录历史里能看到登录 IP)或自己记录后台访问 IP;
- 逐 IP 查归属地与运营商:免费版返回省份/城市/运营商(isp),机房识别字段 ip_type(ISP/BUS/IDC)由 VIP 版提供;
- 输出风险标记:
ip_type=IDC标「机房 IP」;归属地与店铺主体省份不符标「异地」;同一 IP 被多个店铺使用(跨店铺比对时)标「共享」; - 生成自查报告:正常 IP 数 / 风险 IP 数 + 明细表。
注意:免费版不返回 ip_type,自查脚本会对 VIP 字段做兼容——字段为空就提示「机房识别需升级 VIP」,归属地、运营商这些免费字段照常工作。
三、PHP 实现
php
<?php
// check_ips.php —— 批量核验登录 IP 环境(PHP CLI 运行)
// 用法:php check_ips.php ips.txt (每行一个 IP)
$cache = [];
$last = 0.0;
function queryGeo(string $ip): ?array {
global $cache, $last;
if (isset($cache[$ip])) return $cache[$ip];
$now = microtime(true);
if ($now - $last < 1.1) usleep((int)((1.1 - ($now - $last)) * 1e6)); // 限速
$ch = curl_init("https://ip9.com.cn/get?ip=" . urlencode($ip));
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 5]);
$body = curl_exec($ch);
curl_close($ch);
$last = microtime(true);
$d = json_decode($body, true);
if (!isset($d['ret']) || $d['ret'] !== 200) return null;
return $cache[$ip] = $d['data'];
}
$shopProv = $argv[2] ?? '广东'; // 店铺主体省份,按实际改
$ips = array_filter(array_map('trim', file($argv[1] ?? 'ips.txt')));
$report = [];
foreach ($ips as $ip) {
$geo = queryGeo($ip);
if (!$geo) { $report[] = [$ip, '查询失败', '-', '-', '跳过']; continue; }
$prov = $geo['prov'] ?? '';
$isp = $geo['isp'] ?? '';
$type = $geo['ip_type'] ?? ''; // VIP 字段,免费版为空
$flag = '正常';
if ($type === 'IDC') {
$flag = '机房IP风险'; // 云服务器/数据中心出口
} elseif ($prov !== '' && $prov !== $shopProv) {
$flag = '异地登录'; // 与店铺主体省份不符
}
$report[] = [$ip, $prov, $isp, $type !== '' ? $type : '未获取(VIP)', $flag];
}
$risks = array_filter($report, fn($r) => $r[4] !== '正常' && $r[4] !== '跳过');
echo "共核验 " . count($report) . " 个 IP,风险 " . count($risks) . " 个\n";
echo str_pad('IP', 18) . str_pad('归属地', 12) . str_pad('运营商', 16) . str_pad('IP类型', 14) . "标记\n";
foreach ($report as $r) {
echo str_pad($r[0], 18) . str_pad($r[1] ?: '-', 12) . str_pad($r[2] ?: '-', 16)
. str_pad($r[3], 14) . $r[4] . "\n";
}输入文件 ips.txt 每行一个 IP,跑 php check_ips.php ips.txt 广东,输出一张带风险标记的表。核验是逐 IP 串行 + 限速的,少量 IP(几十个)一分钟内跑完;几百个就让它挂着跑,免费版 60 次/分钟的量级自己控制。
四、落地注意事项
- 风险分级,别一杆子打死:机房 IP 不必然等于违规——用云服务器搭 ERP、远程桌面管理店铺的卖家很多,机房租用是常见经营行为。报告用途是「发现环境风险」,不是定罪;
- IP 跳变先查原因:出差、搬家、宽带换运营商都会导致归属地变化,先跟自己的行程对上,再判断是不是异常;
- 别做这几件事:不共享账号密码、不用公共 WiFi 登录后台、不把客服子账号丢给不认识的代运营——这些才是关联的大头,IP 只是信号之一;
- 信号要组合看:IP 类型 + 归属地 + 设备指纹 + 收款账号一起评估,单一信号异常先自查,别自己吓自己;
- 合规:本方案只核验自家店铺的登录环境,属于账号安全自查;不提供、不传播任何规避平台检测的服务或手段。
总结
关联判定是个黑箱,但网络环境这个维度是透明的——你的每一次登录,IP 都摆在平台后台。把登录 IP 拉出来批量核验,归属地是否稳定、是不是机房 IP,环境风险一目了然。上面的 PHP 脚本直接能跑:准备好 ips.txt,php check_ips.php ips.txt 广东 出报告。归属地和运营商用免费版 https://ip9.com.cn/get?ip=xxx 就能查;要看机房/家庭/企业类型(ip_type 字段),VIP 版提供,按次计费不贵。官网:https://www.ip9.com.cn