What Is Mobile Carrier Detection by IP?
When a mobile device browses the internet over a cellular connection (Mobile Carrier Lookup) rather than Wi-Fi, its traffic is routed through the mobile network operator’s infrastructure and exits through an IP range owned or leased by that carrier. This makes it possible to identify the operator — Vodafone, T-Mobile, Three, or any of dozens of regional carriers — purely from the IP address, without any client-side JavaScript, device fingerprinting, or user-agent parsing.
The Carrier Detection API by GLOBUS.studio performs this lookup against a comprehensive, weekly-updated database of IP ranges covering mobile operators from over 20 countries, with a focus on carriers that support WAP click advertising. It returns the operator name in 3ms in plain text or JSON format, or undefined when the IP does not match any known carrier range — indicating a Wi-Fi, broadband, or datacenter address.
API Endpoint and Parameters
GET https://api.globus.studio/v2/carrier?ip={address}&format={format}
ip— the IPv4 address to look upformat— response format:jsonorplain
Full parameter reference is available on the Mobile Carrier Lookup API documentation page.
Request and Response Examples
Recognized Carrier — JSON
GET /v2/carrier?ip=128.45.1.1&format=json
{
"operator": "IT-H3G"
}
Recognized Carrier — Plain Text
GET /v2/carrier?ip=128.45.1.1&format=plain
IT-H3G
No Carrier Match (Wi-Fi / Broadband) — JSON
GET /v2/carrier?ip=8.8.8.8&format=json
{
"operator": "undefined"
}
No Carrier Match — Plain Text
GET /v2/carrier?ip=8.8.8.8&format=plain
undefined
Common Use Cases
Mobile Advertising and WAP Click Campaigns
WAP click billing — where a carrier charges the subscriber directly for a click or subscription without requiring credit card entry — is only available when traffic passes through specific operator gateways. Ad networks and affiliate platforms running these campaigns need to verify in real time that an incoming click originates from a supported carrier before displaying a WAP billing offer. The Mobile Carrier Lookup API provides exactly this gate: if the operator is recognized and matches the campaign’s target carrier list, the offer is shown; otherwise the visitor is routed to a standard web flow. The 3ms latency makes this check invisible within a normal ad redirect chain.
Connection-Type Adaptive Content Delivery
Mobile users on 3G and 4G cellular connections have fundamentally different performance characteristics than Wi-Fi users, even when network speed appears similar on paper — latency, packet loss, and data cost vary significantly. Applications that detect a cellular IP can automatically serve lighter page variants, reduce image quality, defer non-critical resource loading, or warn users before triggering large downloads. This kind of adaptive delivery improves perceived performance and respects users on metered data plans without requiring browser-level Network Information API support, which remains inconsistently implemented across mobile browsers.
Carrier Billing and Direct Operator Payment
Direct carrier billing (DCB) lets mobile subscribers pay for digital goods and services by charging their phone bill rather than entering payment credentials. Platforms offering DCB — app stores, streaming services, gaming platforms — must confirm that the user is on a supported carrier’s network before initiating the billing flow. A pre-check via the Carrier API routes cellular users into the DCB payment path and non-cellular users to standard card payment, reducing friction for the majority of mobile users while keeping the checkout flow clean.
Fraud Detection and Click Validation
Mobile advertising fraud frequently involves datacenter proxies and VPN exit nodes simulating mobile traffic. When a campaign is targeted exclusively at cellular users, any click arriving from an IP that returns undefined — meaning no carrier match — is a strong indicator of non-human or proxied traffic. Combining Mobile Carrier Lookup with IP geolocation and user-agent analysis creates a multi-signal fraud filter that is significantly harder to spoof than any single check alone.
Carrier-Specific Feature Unlocking
Some features — visual voicemail integrations, carrier-sponsored data passes, network-level parental controls, RCS messaging options — are only available to subscribers of specific operators. Applications can use the Carrier API to detect the user’s network silently on first load and surface carrier-specific functionality only to eligible users, without asking them to manually select their provider from a dropdown list.
Regional Compliance and Network Policy Enforcement
Certain content categories are subject to carrier-level regulatory requirements in specific markets — age-gated content, gambling, fantasy sports — where operators are required to enforce access controls on their network. Identifying the carrier from the IP allows a platform to apply the correct ruleset for that operator’s jurisdiction automatically, rather than relying solely on IP geolocation which may resolve to a country but not distinguish between national regulatory frameworks applied at the operator level.
Analytics Segmentation by Network Type
Product analytics pipelines that segment users by device type rarely distinguish between mobile users on Wi-Fi and mobile users on cellular. Enriching analytics events with carrier data at ingestion time creates a richer segmentation dimension: sessions from recognized carrier IPs can be tagged with the operator name, enabling analysis of conversion rates, engagement depth, and feature adoption broken down by network operator. This is particularly valuable for markets where specific carriers dominate mobile internet access and exhibit distinct behavioral patterns.
WordPress Plugin Development
WordPress plugins serving mobile-optimized content, managing mobile ad placements, or implementing carrier billing integrations can call the Carrier API via wp_remote_get() early in the request lifecycle — before template rendering — and store the result in a session variable or short-lived transient. Downstream logic in shortcodes, widgets, and WooCommerce checkout extensions then reads the cached carrier value without incurring additional API calls per page component.
Integration Examples
cURL
curl "https://api.globus.studio/v2/carrier?ip=128.45.1.1&format=json"
JavaScript (Fetch API)
const res = await fetch('https://api.globus.studio/v2/carrier?ip=128.45.1.1&format=json');
const data = await res.json();
const operator = data.operator;
if (operator !== 'undefined') {
console.log('Mobile carrier detected:', operator);
// enable carrier-specific flow
} else {
console.log('No carrier match — Wi-Fi or broadband connection');
}
PHP
$ip = '128.45.1.1';
$url = "https://api.globus.studio/v2/carrier?ip={$ip}&format=json";
$response = json_decode(file_get_contents($url), true);
$operator = $response['operator'];
if ($operator !== 'undefined') {
echo 'Carrier: ' . htmlspecialchars($operator);
} else {
echo 'No carrier detected';
}
Python
import requests
data = requests.get(
'https://api.globus.studio/v2/carrier',
params={'ip': '128.45.1.1', 'format': 'json'}
).json()
operator = data['operator']
if operator != 'undefined':
print(f'Carrier: {operator}')
else:
print('No carrier match')
WordPress (PHP) — Per-Request Mobile Carrier Lookup with Transient Cache
function globus_detect_carrier( $ip ) {
$cache_key = 'carrier_' . md5( $ip );
$cached = get_transient( $cache_key );
if ( false !== $cached ) {
return $cached;
}
$response = wp_remote_get(
'https://api.globus.studio/v2/carrier?ip=' . rawurlencode( $ip ) . '&format=json'
);
$data = json_decode( wp_remote_retrieve_body( $response ), true );
$operator = $data['operator'] ?? 'undefined';
set_transient( $cache_key, $operator, 30 * MINUTE_IN_SECONDS );
return $operator;
}
$carrier = globus_detect_carrier( $_SERVER['REMOTE_ADDR'] );
if ( $carrier !== 'undefined' ) {
// show carrier billing option or mobile-specific content
}
Node.js — Middleware Example
const fetch = require('node-fetch');
async function carrierMiddleware(req, res, next) {
const ip = req.ip;
const response = await fetch(
`https://api.globus.studio/v2/carrier?ip=${ip}&format=json`
);
const data = await response.json();
req.carrier = data.operator !== 'undefined' ? data.operator : null;
next();
}
// In Express:
app.use(carrierMiddleware);
Database Coverage and Update Cycle
Mobile carrier IP ranges are not static — operators expand their networks, acquire new address blocks, and reorganize routing as they roll out 5G infrastructure alongside legacy 3G and 4G networks. The API’s underlying database is updated on a weekly basis, ensuring that newly assigned carrier ranges are recognized promptly and decommissioned ranges do not produce false positives. Coverage spans carriers from over 20 countries, with particular depth in markets where WAP click billing remains an active monetization channel for mobile content publishers.
When an IP falls outside all known carrier ranges — including datacenter IPs, broadband ISPs, and Wi-Fi access points — the API returns undefined cleanly rather than guessing. This explicit negative signal is as useful as a positive match: it tells the application with confidence that the user is not on a cellular connection and should be routed accordingly.
Performance
At 3ms average latency, Mobile Carrier Lookup adds negligible overhead to any request pipeline. The lookup is a pure in-memory range query against the carrier database — no external DNS calls, no third-party network round-trips — making it one of the most consistent-latency endpoints in the GLOBUS.studio API suite. It can be called synchronously in a server-side render, an Express middleware, or a WordPress action hook without any perceptible effect on response time.
Explore all parameters and test live lookups on the Mobile Carrier Lookup API documentation page.