You can a handset's user agent to determine the carrier.
Matching Regular Expression: /^DoCoMo/
Matching Regular Expression: /^(?:KDDI|UP.Browser\/.+?)-(.+?) /
- All modern KDDI handsets include KDDI, although older handsets that just support hdml don't
External Reference: KDDI's specification
KDDI-SA31 UP.Browser/22.214.171.124.3.129 (GUI) MMP/2.0
If the user agent includes KDDI, the browser has xhtml support, otherwise it just has hdml support. In the example, SA31 refers to the device id. Following that is the browser name, "UP.Browser" and version, "126.96.36.199.3.129". Note that some Vodafone phones use "UP.Browser".
Matching Regular Expression: /^(SoftBank|Vodafone)/
Note, there are some subtle differences between SoftBank, and Vodafone
Matching Regular Expression: /WILLCOM/
Matching Regular Expression: /^emobile\/|^Mozilla\/5.0 \(H11T; like Gecko; OpenBrowser\) NetFront\/3.4$|^Mozilla\/4.0 \(compatible; MSIE 6.0; Windows CE; IEMobile 7.7\) S11HT$/
Although smartphones are sold by specific carriers in Japan, they have little in common with other handsets from the carrier.
Matching Regular Expression: /Apple.*Mobile.*Safari/
This includes the iPhone, iPad, and iTouch.
Matching Regular Expression: /Linux.*Mobile.*Safari/
There are several Android handsets on the Japanese market.