Does the app know if it is connecting over wifi or carrier's network? Also,
in case of multiple SIM cards, does it know which data connection is
actually being used?
On Wed, Apr 2, 2014 at 9:08 PM, Adam Baso <abaso(a)wikimedia.org> wrote:
I work on the mobile partner engineering team, probably known better as
the Wikipedia Zero people.
If our servers see that an IP address matches with a given partner mobile
network operator (MNO), the pertinent Wikipedia Zero text banner is shown
to the mobile web user; additionally, offsite links are rewritten to warn a
user when s/he may be entering into a zone that requires data access
This is all fine and well, but partner operators sometimes change IP
addresses and our systems get out of sync. Our partners are busy and our
partner management team does of course strive to work with partners to
proactively manage IP and other technical updates, yet inevitably
information can fall through the cracks. Consequently, when IPs drift, the
system doesn't show banners and do URL rewriting as well as it could.
In order to in part more proactively remediate the drift of operator exit
IP addresses, we're interested in logging two pieces of information
server-side via the forthcoming rewrites of the Wikipedia for Android and
Wikipedia for iOS apps, and in some future state a rewritten Firefox OS app:
(1) MCC-MNC identification code of operator if present (e.g., 123-45 if
the connection is on a particular operator - MCC-MNC is in the format
(2) Exit IP address (typically, gateway/proxy in MNO infrastructure)
The MCC-MNC identification code is embedded on SIM cards and accessible by
routine app APIs.
We would not want to log this information alongside the other Apache
webserver-style elements, but instead have just these two columns in a
separate nonpublic file location, purging records older than 90 days.
The thought is to just have the app code add the MCC-MNC value to an HTTP
header once in a given app session using an MCC-MNC bearing connection
(cellular data), and let the server detect the IP as per normal server
In a nutshell, after normalizing the MCC/MNC codes (some are likely to be
malformed) and cross-checking against our own MCC/MNC database, we'd be
able to see if the IPs are askew, and then reach out to operators to ask if
they have any updated IPs since the last time we received an official
We think this is a simple and fairly easy way to observe updated IP
addresses for operator partners, and prompt the partner management team to
reach out to operators for updated official source IP addresses.
The information could incidentally be useful in gauging rough demand for
Wikipedia in markets germane to Wikipedia Zero (e.g., higher data costs,
lower disposable income), although that is secondary to keeping the IPs
wanted to see if there were other thoughts on this approach. We plan to
move the discussion over to wikitech-l and then later a broader list, but
to avoid cross-posting problems with people having one membership in one
list but not another, wanted to start on mobile-l first.
One last thing - the set of IPs for a given MNO are relatively small. For
example, an MNO may have 100 IP addresses representing 1 million cellular
subscribers. This has two practical consequences: (1) troublingly, even
just a handful of missing IPs has outsize impact, and (2) highly targeted
geography and behavioral inferences are unlikely for a data set composed of
just two types of data elements submitted.
Mobile-l mailing list