タイトルのとおり。
イーモバイルとエッジは未対応なのでこれはこれから仕様書読んで追記、かな……ハンパですみませんです。
Public Class HPhone
Private Const DOCOMO1 As String = "/ser"
Private Const DOCOMO2 As String = ";ser"
Private Const VODA1 As String = "/SN"
Public Function GetHID(ByVal UserAgent As String, ByVal XSubNo As String, ByVal IP As String) As String
If UserAgent = "" Then Return ""
Dim HID As String = ""
'キャリアを検出して端末番号を取得する。だめだった場合はIPを記録
Select Case True
Case UserAgent.Contains(DOCOMO1)
HID = UserAgent.Split("/"c).GetValue(UserAgent.Split("/"c).GetUpperBound(0)).ToString.Replace("ser", "")
Case UserAgent.Contains(DOCOMO2)
HID = UserAgent.Split(";"c).GetValue(UserAgent.Split(";"c).GetUpperBound(0) - 1).ToString.Replace("ser", "")
Case UserAgent.Contains(VODA1)
HID = UserAgent.Split(" "c).GetValue(0).split("/"c).getvalue(UserAgent.Split(" "c).GetValue(0).ToString.Split("/"c).GetUpperBound(0)).ToString.Replace("SN", "")
Case Else
If XSubNo = "" Then
HID = IP
Else
HID = XSubNo.Split("."c).GetValue(0).ToString
End If
End Select
Return HID
End Function
End Class
自分用のメモも兼ねてるけどね(笑)