Главная  Зарегистрироваться  Вход  Мой профиль  Входящие  Моя подписка  Мои форумы  Выход
Текстовая версия Карта  Top-100 пользователей  ПОИСК ПО ФОРУМУ  FAQ 
RSS:  20 последних сообщений форума 20 последних топиков форума

Как определить страну по номеру телефона?

 
Посмотреть связанные обсуждения: (в этом форуме | во всех форумах)

Зашли как: Guest
Пользователи, просматривающие топик: none
  Версия для печати
Все форумы >> [Программирование] >> Компилируемые языки >> Как определить страну по номеру телефона? Страниц: [1]
Имя
Сообщение << Старые топики   Новые топики >>
Как определить страну по номеру телефона? - 27.01.2010 19:03:36   
_SaZ_

 

Сообщений: 4454
Оценки: 398
Присоединился: 30.01.2008
Есть номер телефона "phone" в международном формате. Стоит задача определить страну по этому номеру. Язык предпочтительно JS. Во всяком случае решение должно быть платформонезависимое. Возможно кто-то занимался - будет интересно посмотреть на реализации. Чуток попозже выложу то, что я нагенерил.





Post #: 1
RE: Как определить страну по номеру телефона? - 27.01.2010 19:07:56   
Zevs91207



Сообщений: 1317
Оценки: 0
Присоединился: 09.12.2007
существует справочник кодов,скажи код и я скажу,что за страна +7 это например Россия

_____________________________


Также по всем вопросам, можете писать в PM

(в ответ на _SaZ_)
Post #: 2
RE: Как определить страну по номеру телефона? - 27.01.2010 19:28:36   
_SaZ_

 

Сообщений: 4454
Оценки: 398
Присоединился: 30.01.2008
Справочник этот? - http://en.wikipedia.org/wiki/List_of_country_calling_codes или этот - http://countrycode.org/ ?

Мне как-бы программно нужно :). И именно по номеру телефона, а не по коду. Например: +7640296661024 (номер из головы взят, но вполне реальный) - какая страна?

(в ответ на Zevs91207)
Post #: 3
RE: Как определить страну по номеру телефона? - 27.01.2010 20:10:51   
Zevs91207



Сообщений: 1317
Оценки: 0
Присоединился: 09.12.2007
Не знаю,в программном виде могу предложить только Это

_____________________________


Также по всем вопросам, можете писать в PM

(в ответ на _SaZ_)
Post #: 4
RE: Как определить страну по номеру телефона? - 27.01.2010 20:23:11   
_SaZ_

 

Сообщений: 4454
Оценки: 398
Присоединился: 30.01.2008
Эх, оффтоп-оффтоп. Ветка форума - про компилируемые языки. Не сложно догадаться, что просится именно код, а не "программы" или "скажи, какой надо". Это мы и сами умеем.


Просто мне кажется, что можно сделать элегантнее:

function xxxxx_Code2Country( phone )
{
	var country = "unknown";

	if ( phone.length < 5 || phone[0] != '+' )
		return country;

	switch ( phone.substr( 1, 4 ) )
	{
	case '7840':
	case '7940':
		country = 'ab'; // Abkhazia
		break;
	case '1684':
		country = 'as'; // American Samoa
		break;
	case '1264':
		country = 'ai'; // Anguilla
		break;
	case '1268':
		country = 'ag'; // Antigua and Barbuda
		break;
	case '1242':
		country = 'bs'; // Bahamas
		break;
	case '1246':
		country = 'bb'; // Barbados
		break;
	case '1441':
		country = 'bm'; // Bermuda
		break;
	case '1284':
		country = 'vg'; // British Virgin Islands
		break;
	case '1204':
	case '1250':
	case '1306':
	case '1403':
	case '1416':
	case '1418':
	case '1450':
	case '1506':
	case '1514':
	case '1519':
	case '1604':
	case '1613':
	case '1705':
	case '1709':
	case '1780':
	case '1807':
	case '1819':
	case '1867':
	case '1902':
	case '1905':
		country = 'ca'; // Canada
		break;
	case '1345':
		country = 'ky'; // Cayman Islands
		break;
	case '1767':
		country = 'dm'; // Dominica
		break;
	case '1809':
		country = 'do'; // Dominican Republic
		break;
	case '1473':
		country = 'gd'; // Grenada
		break;
	case '1671':
		country = 'gu'; // Guam
		break;
	case '1876':
		country = 'jm'; // Jamaica
		break;
	case '1664':
		country = 'ms'; // Montserrat
		break;
	case '1670':
		country = 'mp'; // Northern Mariana Islands
		break;
	case '1869':
		country = 'kn'; // Saint Kitts and Nevis
		break;
	case '1758':
		country = 'lc'; // Saint Lucia
		break;
	case '1599':
		country = 'mf'; // Saint Martin
		break;
	case '1784':
		country = 'vc'; // Saint Vincent and the Grenadines
		break;
	case '1868':
		country = 'tt'; // Trinidad and Tobago
		break;
	case '1649':
		country = 'tc'; // Turks and Caicos Islands
		break;
	case '1340':
		country = 'vi'; // US Virgin Islands
		break;
	default:
		switch ( phone.substr( 1, 3 ) )
		{
		case '355':
			country = 'al'; // Albania
			break;
		case '213':
			country = 'dz'; // Algeria
			break;
		case '376':
			country = 'ad'; // Andorra
			break;
		case '244':
			country = 'ao'; // Angola
			break;
		case '672':
			country = 'aq'; // Antarctica
			break;
		case '374':
			country = 'am'; // Armenia
			break;
		case '297':
			country = 'aw'; // Aruba
			break;
		case '994':
			country = 'az'; // Azerbaijan
			break;
		case '973':
			country = 'bh'; // Bahrain
			break;
		case '880':
			country = 'bd'; // Bangladesh
			break;
		case '375':
			country = 'by'; // Belarus
			break;
		case '501':
			country = 'bz'; // Belize
			break;
		case '229':
			country = 'bj'; // Benin
			break;
		case '975':
			country = 'bt'; // Bhutan
			break;
		case '591':
			country = 'bo'; // Bolivia
			break;
		case '387':
			country = 'ba'; // Bosnia and Herzegovina
			break;
		case '267':
			country = 'bw'; // Botswana
			break;
		case '673':
			country = 'bn'; // Brunei
			break;
		case '359':
			country = 'bg'; // Bulgaria
			break;
		case '226':
			country = 'bf'; // Burkina Faso
			break;
		case '257':
			country = 'bi'; // Burundi
			break;
		case '855':
			country = 'kh'; // Cambodia
			break;
		case '237':
			country = 'cm'; // Cameroon
			break;
		case '238':
			country = 'cv'; // Cape Verde
			break;
		case '236':
			country = 'cf'; // Central African Republic
			break;
		case '235':
			country = 'td'; // Chad
			break;
		case '269':
			country = 'km'; // Comoros
			break;
		case '682':
			country = 'ck'; // Cook Islands
			break;
		case '506':
			country = 'cr'; // Costa Rica
			break;
		case '385':
			country = 'hr'; // Croatia
			break;
		case '357':
			country = 'cy'; // Cyprus
			break;
		case '420':
			country = 'cz'; // Czech Republic
			break;
		case '243':
			country = 'cd'; // Democratic Republic of the Congo
			break;
		case '253':
			country = 'dj'; // Djibouti
			break;
		case '670':
			country = 'tl'; // East Timor
			break;
		case '593':
			country = 'ec'; // Ecuador
			break;
		case '503':
			country = 'sv'; // El Salvador
			break;
		case '240':
			country = 'gq'; // Equatorial Guinea
			break;
		case '291':
			country = 'er'; // Eritrea
			break;
		case '372':
			country = 'ee'; // Estonia
			break;
		case '251':
			country = 'et'; // Ethiopia
			break;
		case '500':
			country = 'fk'; // Falkland Islands
			break;
		case '298':
			country = 'fo'; // Faroe Islands
			break;
		case '679':
			country = 'fj'; // Fiji
			break;
		case '358':
			country = 'fi'; // Finland
			break;
		case '689':
			country = 'pf'; // French Polynesia
			break;
		case '241':
			country = 'ga'; // Gabon
			break;
		case '220':
			country = 'gm'; // Gambia
			break;
		case '995':
			country = 'ge'; // Georgia
			break;
		case '233':
			country = 'gh'; // Ghana
			break;
		case '350':
			country = 'gi'; // Gibraltar
			break;
		case '299':
			country = 'gl'; // Greenland
			break;
		case '502':
			country = 'gp'; // Guatemala
			break;
		case '224':
			country = 'gn'; // Guinea
			break;
		case '245':
			country = 'gw'; // Guinea-Bissau
			break;
		case '592':
			country = 'gy'; // Guyana
			break;
		case '509':
			country = 'ht'; // Haiti
			break;
		case '504':
			country = 'hn'; // Honduras
			break;
		case '852':
			country = 'hk'; // Hong Kong
			break;
		case '354':
			country = 'is'; // Iceland
			break;
		case '964':
			country = 'iq'; // Iraq
			break;
		case '353':
			country = 'ie'; // Ireland
			break;
		case '972':
			country = 'il'; // Israel
			break;
		case '225':
			country = 'ci'; // Ivory Coast
			break;
		case '962':
			country = 'jo'; // Jordan
			break;
		case '254':
			country = 'ke'; // Kenya
			break;
		case '686':
			country = 'ki'; // Kiribati
			break;
		case '965':
			country = 'kw'; // Kuwait
			break;
		case '996':
			country = 'kg'; // Kyrgyzstan
			break;
		case '856':
			country = 'la'; // Laos
			break;
		case '371':
			country = 'lv'; // Latvia
			break;
		case '961':
			country = 'lb'; // Lebanon
			break;
		case '266':
			country = 'ls'; // Lesotho
			break;
		case '231':
			country = 'lr'; // Liberia
			break;
		case '218':
			country = 'ly'; // Libya
			break;
		case '423':
			country = 'li'; // Liechtenstein
			break;
		case '370':
			country = 'lt'; // Lithuania
			break;
		case '352':
			country = 'lu'; // Luxembourg
			break;
		case '853':
			country = 'mo'; // Macau
			break;
		case '389':
			country = 'mk'; // Macedonia
			break;
		case '261':
			country = 'mg'; // Madagascar
			break;
		case '265':
			country = 'mw'; // Malawi
			break;
		case '960':
			country = 'mv'; // Maldives
			break;
		case '223':
			country = 'ml'; // Mali
			break;
		case '356':
			country = 'mt'; // Malta
			break;
		case '692':
			country = 'mh'; // Marshall Islands
			break;
		case '222':
			country = 'mr'; // Mauritania
			break;
		case '230':
			country = 'mu'; // Mauritius
			break;
		case '269':
			country = 'yt'; // Mayotte
			break;
		case '691':
			country = 'fm'; // Micronesia
			break;
		case '373':
			country = 'md'; // Moldova
			break;
		case '377':
			country = 'mc'; // Monaco
			break;
		case '976':
			country = 'mn'; // Mongolia
			break;
		case '382':
			country = 'me'; // Montenegro
			break;
		case '212':
			country = 'ma'; // Morocco
			break;
		case '258':
			country = 'mz'; // Mozambique
			break;
		case '264':
			country = 'na'; // Namibia
			break;
		case '674':
			country = 'nr'; // Nauru
			break;
		case '977':
			country = 'np'; // Nepal
			break;
		case '599':
			country = 'an'; // Netherlands Antilles
			break;
		case '687':
			country = 'nc'; // New Caledonia
			break;
		case '505':
			country = 'ni'; // Nicaragua
			break;
		case '227':
			country = 'ne'; // Niger
			break;
		case '234':
			country = 'ng'; // Nigeria
			break;
		case '683':
			country = 'nu'; // Niue
			break;
		case '850':
			country = 'kp'; // North Korea
			break;
		case '968':
			country = 'om'; // Oman
			break;
		case '680':
			country = 'pw'; // Palau
			break;
		case '507':
			country = 'pa'; // Panama
			break;
		case '675':
			country = 'pg'; // Papua New Guinea
			break;
		case '595':
			country = 'py'; // Paraguay
			break;
		case '351':
			country = 'pt'; // Portugal
			break;
		case '139':
			country = 'pr'; // Puerto Rico
			break;
		case '974':
			country = 'qa'; // Qatar
			break;
		case '242':
			country = 'cg'; // Republic of the Congo
			break;
		case '250':
			country = 'rw'; // Rwanda
			break;
		case '590':
			country = 'bl'; // Saint Barthelemy
			break;
		case '290':
			country = 'sh'; // Saint Helena
			break;
		case '508':
			country = 'pm'; // Saint Pierre and Miquelon
			break;
		case '685':
			country = 'ws'; // Samoa
			break;
		case '378':
			country = 'sm'; // San Marino
			break;
		case '239':
			country = 'st'; // Sao Tome and Principe
			break;
		case '966':
			country = 'sa'; // Saudi Arabia
			break;
		case '221':
			country = 'sn'; // Senegal
			break;
		case '381':
			country = 'rs'; // Serbia
			break;
		case '248':
			country = 'sc'; // Seychelles
			break;
		case '232':
			country = 'sl'; // Sierra Leone
			break;
		case '421':
			country = 'sk'; // Slovakia
			break;
		case '386':
			country = 'si'; // Slovenia
			break;
		case '677':
			country = 'sb'; // Solomon Islands
			break;
		case '252':
			country = 'so'; // Somalia
			break;
		case '249':
			country = 'sd'; // Sudan
			break;
		case '597':
			country = 'sr'; // Suriname
			break;
		case '268':
			country = 'sz'; // Swaziland
			break;
		case '963':
			country = 'sy'; // Syria
			break;
		case '886':
			country = 'tw'; // Taiwan
			break;
		case '992':
			country = 'tj'; // Tajikistan
			break;
		case '255':
			country = 'tz'; // Tanzania
			break;
		case '228':
			country = 'tg'; // Togo
			break;
		case '690':
			country = 'tk'; // Tokelau
			break;
		case '676':
			country = 'to'; // Tonga
			break;
		case '216':
			country = 'tn'; // Tunisia
			break;
		case '993':
			country = 'tm'; // Turkmenistan
			break;
		case '688':
			country = 'tv'; // Tuvalu
			break;
		case '256':
			country = 'ug'; // Uganda
			break;
		case '380':
			country = 'ua'; // Ukraine
			break;
		case '971':
			country = 'ae'; // United Arab Emirates
			break;
		case '598':
			country = 'uy'; // Uruguay
			break;
		case '998':
			country = 'uz'; // Uzbekistan
			break;
		case '678':
			country = 'vu'; // Vanuatu
			break;
		case '681':
			country = 'wf'; // Wallis and Futuna
			break;
		case '967':
			country = 'ye'; // Yemen
			break;
		case '260':
			country = 'zm'; // Zambia
			break;
		case '263':
			country = 'zw'; // Zimbabwe
			break;
		default:
			switch ( phone.substr( 1, 2 ) )
			{
			case '93':
				country = 'af'; // Afghanistan
				break;
			case '54':
				country = 'ar'; // Argentina
				break;
			case '61':
				country = 'au'; // Australia
				break;
			case '43':
				country = 'at'; // Austria
				break;
			case '32':
				country = 'be'; // Belgium
				break;
			case '55':
				country = 'br'; // Brazil
				break;
			case '95':
				country = 'mm'; // Burma (Myanmar)
				break;
			case '56':
				country = 'cl'; // Chile
				break;
			case '86':
				country = 'cn'; // China
				break;
			case '61':
				country = 'cx'; // Christmas Island
				break;
			case '61':
				country = 'cc'; // Cocos (Keeling) Islands
				break;
			case '57':
				country = 'co'; // Colombia
				break;
			case '53':
				country = 'cu'; // Cuba
				break;
			case '45':
				country = 'dk'; // Denmark
				break;
			case '20':
				country = 'eg'; // Egypt
				break;
			case '33':
				country = 'fr'; // France
				break;
			case '49':
				country = 'de'; // Germany
				break;
			case '30':
				country = 'gr'; // Greece
				break;
			case '39':
				country = 'va'; // Holy See (Vatican City)
				break;
			case '36':
				country = 'hu'; // Hungary
				break;
			case '91':
				country = 'in'; // India
				break;
			case '62':
				country = 'id'; // Indonesia
				break;
			case '98':
				country = 'ir'; // Iran
				break;
			case '44':
				country = 'im'; // Isle of Man
				break;
			case '39':
				country = 'it'; // Italy
				break;
			case '81':
				country = 'jp'; // Japan
				break;
			case '76':
			case '77':
				country = 'kz'; // Kazakhstan
				break;
			case '60':
				country = 'my'; // Malaysia
				break;
			case '52':
				country = 'mx'; // Mexico
				break;
			case '31':
				country = 'nl'; // Netherlands
				break;
			case '64':
				country = 'nz'; // New Zealand
				break;
			case '47':
				country = 'no'; // Norway
				break;
			case '92':
				country = 'pk'; // Pakistan
				break;
			case '51':
				country = 'pe'; // Peru
				break;
			case '63':
				country = 'ph'; // Philippines
				break;
			case '64':
				country = 'pn'; // Pitcairn Islands
				break;
			case '48':
				country = 'pl'; // Poland
				break;
			case '40':
				country = 'ro'; // Romania
				break;
			case '65':
				country = 'sg'; // Singapore
				break;
			case '27':
				country = 'za'; // South Africa
				break;
			case '82':
				country = 'kr'; // South Korea
				break;
			case '34':
				country = 'es'; // Spain
				break;
			case '94':
				country = 'lk'; // Sri Lanka
				break;
			case '46':
				country = 'se'; // Sweden
				break;
			case '41':
				country = 'ch'; // Switzerland
				break;
			case '66':
				country = 'th'; // Thailand
				break;
			case '90':
				country = 'tr'; // Turkey
				break;
			case '44':
				country = 'gb'; // United Kingdom
				break;
			case '58':
				country = 've'; // Venezuela
				break;
			case '84':
				country = 'vn'; // Vietnam
				break;
			default:
				switch ( phone.substr( 1, 1 ) )
				{
				case '7':
					country = 'ru'; // Russia
					break;
				case '1':
					country = 'us'; // United States
					break;
				default:
					break;
				}
				break;
			}
			break;
		}
		break;
	}

	return country;
}



< Сообщение отредактировано _SaZ_ -- 27.01.2010 20:25:43 >

(в ответ на Zevs91207)
Post #: 5
RE: Как определить страну по номеру телефона? - 27.01.2010 22:17:33   
Як Истребитель

 

Сообщений: 410
Оценки: 0
Присоединился: 27.01.2010
Дык кодов много, запаришься-то все вбивать в switch. Надо бы с базой какой-нибудь сверяться. Например, ввели код 1268, смотрим в базу вида 1234:ab; 1268:az; и выбираем нужное. Кода намного меньше будет, думаю.

(в ответ на _SaZ_)
Post #: 6
RE: Как определить страну по номеру телефона? - 28.01.2010 0:09:15   
_SaZ_

 

Сообщений: 4454
Оценки: 398
Присоединился: 30.01.2008
С какой нафиг базой? Зачем из пушки по воробьям. Данные ВСЕ статические.

P.S. код не рукописный, я не дурак, чтобы столько набирать :). Код генерированный. В JS я не шарю, но для си это был бы оптимальный вариант.

(в ответ на Як Истребитель)
Post #: 7
RE: Как определить страну по номеру телефона? - 28.02.2010 23:50:15   
Carnage1995

Сообщений: 2
Оценки: 0
Присоединился: 28.02.2010
Так, в JS я не разбираюсь но могу посоветовать вот что. Т.к. во всех странах номер(без кода)состоит из семи цифр. Т.к. они стоят после кода то их надо отсеять. Остался только код. Берем базу данных и синхронизируем. И в отдельном окне выводим страну. Т.к. я не разбираюсь в этом ЯП то с кодом мучайся сам.

(в ответ на _SaZ_)
Post #: 8
RE: Как определить страну по номеру телефона? - 28.02.2010 23:52:21   
Carnage1995

Сообщений: 2
Оценки: 0
Присоединился: 28.02.2010
quote:

ORIGINAL: _SaZ_

Эх, оффтоп-оффтоп. Ветка форума - про компилируемые языки. Не сложно догадаться, что просится именно код, а не "программы" или "скажи, какой надо". Это мы и сами умеем.


Просто мне кажется, что можно сделать элегантнее:

function xxxxx_Code2Country( phone )
{
	var country = "unknown";

	if ( phone.length < 5 || phone[0] != '+' )
		return country;

	switch ( phone.substr( 1, 4 ) )
	{
	case '7840':
	case '7940':
		country = 'ab'; // Abkhazia
		break;
	case '1684':
		country = 'as'; // American Samoa
		break;
	case '1264':
		country = 'ai'; // Anguilla
		break;
	case '1268':
		country = 'ag'; // Antigua and Barbuda
		break;
	case '1242':
		country = 'bs'; // Bahamas
		break;
	case '1246':
		country = 'bb'; // Barbados
		break;
	case '1441':
		country = 'bm'; // Bermuda
		break;
	case '1284':
		country = 'vg'; // British Virgin Islands
		break;
	case '1204':
	case '1250':
	case '1306':
	case '1403':
	case '1416':
	case '1418':
	case '1450':
	case '1506':
	case '1514':
	case '1519':
	case '1604':
	case '1613':
	case '1705':
	case '1709':
	case '1780':
	case '1807':
	case '1819':
	case '1867':
	case '1902':
	case '1905':
		country = 'ca'; // Canada
		break;
	case '1345':
		country = 'ky'; // Cayman Islands
		break;
	case '1767':
		country = 'dm'; // Dominica
		break;
	case '1809':
		country = 'do'; // Dominican Republic
		break;
	case '1473':
		country = 'gd'; // Grenada
		break;
	case '1671':
		country = 'gu'; // Guam
		break;
	case '1876':
		country = 'jm'; // Jamaica
		break;
	case '1664':
		country = 'ms'; // Montserrat
		break;
	case '1670':
		country = 'mp'; // Northern Mariana Islands
		break;
	case '1869':
		country = 'kn'; // Saint Kitts and Nevis
		break;
	case '1758':
		country = 'lc'; // Saint Lucia
		break;
	case '1599':
		country = 'mf'; // Saint Martin
		break;
	case '1784':
		country = 'vc'; // Saint Vincent and the Grenadines
		break;
	case '1868':
		country = 'tt'; // Trinidad and Tobago
		break;
	case '1649':
		country = 'tc'; // Turks and Caicos Islands
		break;
	case '1340':
		country = 'vi'; // US Virgin Islands
		break;
	default:
		switch ( phone.substr( 1, 3 ) )
		{
		case '355':
			country = 'al'; // Albania
			break;
		case '213':
			country = 'dz'; // Algeria
			break;
		case '376':
			country = 'ad'; // Andorra
			break;
		case '244':
			country = 'ao'; // Angola
			break;
		case '672':
			country = 'aq'; // Antarctica
			break;
		case '374':
			country = 'am'; // Armenia
			break;
		case '297':
			country = 'aw'; // Aruba
			break;
		case '994':
			country = 'az'; // Azerbaijan
			break;
		case '973':
			country = 'bh'; // Bahrain
			break;
		case '880':
			country = 'bd'; // Bangladesh
			break;
		case '375':
			country = 'by'; // Belarus
			break;
		case '501':
			country = 'bz'; // Belize
			break;
		case '229':
			country = 'bj'; // Benin
			break;
		case '975':
			country = 'bt'; // Bhutan
			break;
		case '591':
			country = 'bo'; // Bolivia
			break;
		case '387':
			country = 'ba'; // Bosnia and Herzegovina
			break;
		case '267':
			country = 'bw'; // Botswana
			break;
		case '673':
			country = 'bn'; // Brunei
			break;
		case '359':
			country = 'bg'; // Bulgaria
			break;
		case '226':
			country = 'bf'; // Burkina Faso
			break;
		case '257':
			country = 'bi'; // Burundi
			break;
		case '855':
			country = 'kh'; // Cambodia
			break;
		case '237':
			country = 'cm'; // Cameroon
			break;
		case '238':
			country = 'cv'; // Cape Verde
			break;
		case '236':
			country = 'cf'; // Central African Republic
			break;
		case '235':
			country = 'td'; // Chad
			break;
		case '269':
			country = 'km'; // Comoros
			break;
		case '682':
			country = 'ck'; // Cook Islands
			break;
		case '506':
			country = 'cr'; // Costa Rica
			break;
		case '385':
			country = 'hr'; // Croatia
			break;
		case '357':
			country = 'cy'; // Cyprus
			break;
		case '420':
			country = 'cz'; // Czech Republic
			break;
		case '243':
			country = 'cd'; // Democratic Republic of the Congo
			break;
		case '253':
			country = 'dj'; // Djibouti
			break;
		case '670':
			country = 'tl'; // East Timor
			break;
		case '593':
			country = 'ec'; // Ecuador
			break;
		case '503':
			country = 'sv'; // El Salvador
			break;
		case '240':
			country = 'gq'; // Equatorial Guinea
			break;
		case '291':
			country = 'er'; // Eritrea
			break;
		case '372':
			country = 'ee'; // Estonia
			break;
		case '251':
			country = 'et'; // Ethiopia
			break;
		case '500':
			country = 'fk'; // Falkland Islands
			break;
		case '298':
			country = 'fo'; // Faroe Islands
			break;
		case '679':
			country = 'fj'; // Fiji
			break;
		case '358':
			country = 'fi'; // Finland
			break;
		case '689':
			country = 'pf'; // French Polynesia
			break;
		case '241':
			country = 'ga'; // Gabon
			break;
		case '220':
			country = 'gm'; // Gambia
			break;
		case '995':
			country = 'ge'; // Georgia
			break;
		case '233':
			country = 'gh'; // Ghana
			break;
		case '350':
			country = 'gi'; // Gibraltar
			break;
		case '299':
			country = 'gl'; // Greenland
			break;
		case '502':
			country = 'gp'; // Guatemala
			break;
		case '224':
			country = 'gn'; // Guinea
			break;
		case '245':
			country = 'gw'; // Guinea-Bissau
			break;
		case '592':
			country = 'gy'; // Guyana
			break;
		case '509':
			country = 'ht'; // Haiti
			break;
		case '504':
			country = 'hn'; // Honduras
			break;
		case '852':
			country = 'hk'; // Hong Kong
			break;
		case '354':
			country = 'is'; // Iceland
			break;
		case '964':
			country = 'iq'; // Iraq
			break;
		case '353':
			country = 'ie'; // Ireland
			break;
		case '972':
			country = 'il'; // Israel
			break;
		case '225':
			country = 'ci'; // Ivory Coast
			break;
		case '962':
			country = 'jo'; // Jordan
			break;
		case '254':
			country = 'ke'; // Kenya
			break;
		case '686':
			country = 'ki'; // Kiribati
			break;
		case '965':
			country = 'kw'; // Kuwait
			break;
		case '996':
			country = 'kg'; // Kyrgyzstan
			break;
		case '856':
			country = 'la'; // Laos
			break;
		case '371':
			country = 'lv'; // Latvia
			break;
		case '961':
			country = 'lb'; // Lebanon
			break;
		case '266':
			country = 'ls'; // Lesotho
			break;
		case '231':
			country = 'lr'; // Liberia
			break;
		case '218':
			country = 'ly'; // Libya
			break;
		case '423':
			country = 'li'; // Liechtenstein
			break;
		case '370':
			country = 'lt'; // Lithuania
			break;
		case '352':
			country = 'lu'; // Luxembourg
			break;
		case '853':
			country = 'mo'; // Macau
			break;
		case '389':
			country = 'mk'; // Macedonia
			break;
		case '261':
			country = 'mg'; // Madagascar
			break;
		case '265':
			country = 'mw'; // Malawi
			break;
		case '960':
			country = 'mv'; // Maldives
			break;
		case '223':
			country = 'ml'; // Mali
			break;
		case '356':
			country = 'mt'; // Malta
			break;
		case '692':
			country = 'mh'; // Marshall Islands
			break;
		case '222':
			country = 'mr'; // Mauritania
			break;
		case '230':
			country = 'mu'; // Mauritius
			break;
		case '269':
			country = 'yt'; // Mayotte
			break;
		case '691':
			country = 'fm'; // Micronesia
			break;
		case '373':
			country = 'md'; // Moldova
			break;
		case '377':
			country = 'mc'; // Monaco
			break;
		case '976':
			country = 'mn'; // Mongolia
			break;
		case '382':
			country = 'me'; // Montenegro
			break;
		case '212':
			country = 'ma'; // Morocco
			break;
		case '258':
			country = 'mz'; // Mozambique
			break;
		case '264':
			country = 'na'; // Namibia
			break;
		case '674':
			country = 'nr'; // Nauru
			break;
		case '977':
			country = 'np'; // Nepal
			break;
		case '599':
			country = 'an'; // Netherlands Antilles
			break;
		case '687':
			country = 'nc'; // New Caledonia
			break;
		case '505':
			country = 'ni'; // Nicaragua
			break;
		case '227':
			country = 'ne'; // Niger
			break;
		case '234':
			country = 'ng'; // Nigeria
			break;
		case '683':
			country = 'nu'; // Niue
			break;
		case '850':
			country = 'kp'; // North Korea
			break;
		case '968':
			country = 'om'; // Oman
			break;
		case '680':
			country = 'pw'; // Palau
			break;
		case '507':
			country = 'pa'; // Panama
			break;
		case '675':
			country = 'pg'; // Papua New Guinea
			break;
		case '595':
			country = 'py'; // Paraguay
			break;
		case '351':
			country = 'pt'; // Portugal
			break;
		case '139':
			country = 'pr'; // Puerto Rico
			break;
		case '974':
			country = 'qa'; // Qatar
			break;
		case '242':
			country = 'cg'; // Republic of the Congo
			break;
		case '250':
			country = 'rw'; // Rwanda
			break;
		case '590':
			country = 'bl'; // Saint Barthelemy
			break;
		case '290':
			country = 'sh'; // Saint Helena
			break;
		case '508':
			country = 'pm'; // Saint Pierre and Miquelon
			break;
		case '685':
			country = 'ws'; // Samoa
			break;
		case '378':
			country = 'sm'; // San Marino
			break;
		case '239':
			country = 'st'; // Sao Tome and Principe
			break;
		case '966':
			country = 'sa'; // Saudi Arabia
			break;
		case '221':
			country = 'sn'; // Senegal
			break;
		case '381':
			country = 'rs'; // Serbia
			break;
		case '248':
			country = 'sc'; // Seychelles
			break;
		case '232':
			country = 'sl'; // Sierra Leone
			break;
		case '421':
			country = 'sk'; // Slovakia
			break;
		case '386':
			country = 'si'; // Slovenia
			break;
		case '677':
			country = 'sb'; // Solomon Islands
			break;
		case '252':
			country = 'so'; // Somalia
			break;
		case '249':
			country = 'sd'; // Sudan
			break;
		case '597':
			country = 'sr'; // Suriname
			break;
		case '268':
			country = 'sz'; // Swaziland
			break;
		case '963':
			country = 'sy'; // Syria
			break;
		case '886':
			country = 'tw'; // Taiwan
			break;
		case '992':
			country = 'tj'; // Tajikistan
			break;
		case '255':
			country = 'tz'; // Tanzania
			break;
		case '228':
			country = 'tg'; // Togo
			break;
		case '690':
			country = 'tk'; // Tokelau
			break;
		case '676':
			country = 'to'; // Tonga
			break;
		case '216':
			country = 'tn'; // Tunisia
			break;
		case '993':
			country = 'tm'; // Turkmenistan
			break;
		case '688':
			country = 'tv'; // Tuvalu
			break;
		case '256':
			country = 'ug'; // Uganda
			break;
		case '380':
			country = 'ua'; // Ukraine
			break;
		case '971':
			country = 'ae'; // United Arab Emirates
			break;
		case '598':
			country = 'uy'; // Uruguay
			break;
		case '998':
			country = 'uz'; // Uzbekistan
			break;
		case '678':
			country = 'vu'; // Vanuatu
			break;
		case '681':
			country = 'wf'; // Wallis and Futuna
			break;
		case '967':
			country = 'ye'; // Yemen
			break;
		case '260':
			country = 'zm'; // Zambia
			break;
		case '263':
			country = 'zw'; // Zimbabwe
			break;
		default:
			switch ( phone.substr( 1, 2 ) )
			{
			case '93':
				country = 'af'; // Afghanistan
				break;
			case '54':
				country = 'ar'; // Argentina
				break;
			case '61':
				country = 'au'; // Australia
				break;
			case '43':
				country = 'at'; // Austria
				break;
			case '32':
				country = 'be'; // Belgium
				break;
			case '55':
				country = 'br'; // Brazil
				break;
			case '95':
				country = 'mm'; // Burma (Myanmar)
				break;
			case '56':
				country = 'cl'; // Chile
				break;
			case '86':
				country = 'cn'; // China
				break;
			case '61':
				country = 'cx'; // Christmas Island
				break;
			case '61':
				country = 'cc'; // Cocos (Keeling) Islands
				break;
			case '57':
				country = 'co'; // Colombia
				break;
			case '53':
				country = 'cu'; // Cuba
				break;
			case '45':
				country = 'dk'; // Denmark
				break;
			case '20':
				country = 'eg'; // Egypt
				break;
			case '33':
				country = 'fr'; // France
				break;
			case '49':
				country = 'de'; // Germany
				break;
			case '30':
				country = 'gr'; // Greece
				break;
			case '39':
				country = 'va'; // Holy See (Vatican City)
				break;
			case '36':
				country = 'hu'; // Hungary
				break;
			case '91':
				country = 'in'; // India
				break;
			case '62':
				country = 'id'; // Indonesia
				break;
			case '98':
				country = 'ir'; // Iran
				break;
			case '44':
				country = 'im'; // Isle of Man
				break;
			case '39':
				country = 'it'; // Italy
				break;
			case '81':
				country = 'jp'; // Japan
				break;
			case '76':
			case '77':
				country = 'kz'; // Kazakhstan
				break;
			case '60':
				country = 'my'; // Malaysia
				break;
			case '52':
				country = 'mx'; // Mexico
				break;
			case '31':
				country = 'nl'; // Netherlands
				break;
			case '64':
				country = 'nz'; // New Zealand
				break;
			case '47':
				country = 'no'; // Norway
				break;
			case '92':
				country = 'pk'; // Pakistan
				break;
			case '51':
				country = 'pe'; // Peru
				break;
			case '63':
				country = 'ph'; // Philippines
				break;
			case '64':
				country = 'pn'; // Pitcairn Islands
				break;
			case '48':
				country = 'pl'; // Poland
				break;
			case '40':
				country = 'ro'; // Romania
				break;
			case '65':
				country = 'sg'; // Singapore
				break;
			case '27':
				country = 'za'; // South Africa
				break;
			case '82':
				country = 'kr'; // South Korea
				break;
			case '34':
				country = 'es'; // Spain
				break;
			case '94':
				country = 'lk'; // Sri Lanka
				break;
			case '46':
				country = 'se'; // Sweden
				break;
			case '41':
				country = 'ch'; // Switzerland
				break;
			case '66':
				country = 'th'; // Thailand
				break;
			case '90':
				country = 'tr'; // Turkey
				break;
			case '44':
				country = 'gb'; // United Kingdom
				break;
			case '58':
				country = 've'; // Venezuela
				break;
			case '84':
				country = 'vn'; // Vietnam
				break;
			default:
				switch ( phone.substr( 1, 1 ) )
				{
				case '7':
					country = 'ru'; // Russia
					break;
				case '1':
					country = 'us'; // United States
					break;
				default:
					break;
				}
				break;
			}
			break;
		}
		break;
	}

	return country;
}




Сколько ты это писал?

(в ответ на _SaZ_)
Post #: 9
RE: Как определить страну по номеру телефона? - 01.03.2010 1:06:02   
_SaZ_

 

Сообщений: 4454
Оценки: 398
Присоединился: 30.01.2008
quote:

ORIGINAL: Carnage1995
Так, в JS я не разбираюсь но могу посоветовать вот что. Т.к. во всех странах номер(без кода)состоит из семи цифр. Т.к. они стоят после кода то их надо отсеять. Остался только код. Берем базу данных и синхронизируем. И в отдельном окне выводим страну. Т.к. я не разбираюсь в этом ЯП то с кодом мучайся сам.

Ты не учёл, что бывают "внутристрановые" коды, которые, ктстати, могут быть разной длины. Да и номера телефонов далеко не во всех странах по 7 цифр. К тому же есть "специальные" номера, с добавочными и т.п.


quote:

ORIGINAL: Carnage1995
Сколько ты это писал?

Это писал написанный мной кодогенератор. Меньше, чем за десятую секунды. Ничего сложного тут нет.

(в ответ на Carnage1995)
Post #: 10
Страниц:   [1]
Все форумы >> [Программирование] >> Компилируемые языки >> Как определить страну по номеру телефона? Страниц: [1]
Перейти к:





Новые сообщения Нет новых сообщений
Популярные с новыми сообщениями Популярные без новых сообщений
Заблокированные с новыми сообщениями Заблокированные без сообщений
 Новое сообщение
 Ответ
 Новое голосование
 Оставить голос
 Удалить мой пост
 Удалить мое обсуждение
 Оценить пост









Abuse: Вопросы по сайту : xa@real.xakep.ru

Rambler's Top100
0.203