Вопрос по IP2Country., Требуется доп. информация |
Здравствуйте, гость ( Вход | Регистрация )
Вопрос по IP2Country., Требуется доп. информация |
8.7.2009, 9:58
Сообщение
#1
|
|
Постоялец Группа: Пользователи Сообщений: 454 Регистрация: 17.10.2008 Из: Новосибирск Пользователь №: 825 Спасибо сказали: 90 раз |
Нужна ссылка ( развернутого ответа уж не прошу ) на тему о загрузке, работе, и взаимодействии хаба и файла ip-to-country.csv
Есть задача полностью понять, можно ли его своевольно так сказать модифицировать, и если да, то в каких пределах. Пока что удалось просто внести новый диапазон и заставить хаб воспринимать файл корректно, но при этом, например, при двух верных кодах RU и RUS и внесенном произвольном непосредственном имени страны, это имя страны по команде Код Core.SendToNick("[INT]district", IP2Country.GetCountryName(Core.GetUser("[INT]district",true).sIP) ) хаб отсылает верное ( проверялся тестовый файл ip-to-country.csv с одним-единственным диапазоном ). Где хаб берет это имя? Если внести совсем некорректную запись - например, RU и пустой второй канти-код, функция отрабатывает, но отсылает полную отсебятину - Южная Корея и т.п, хотя по идее должна возвращать Unknown. Где вот хаб берет эту Южную Корею? В общем, если кто знаком с темой, дайте ссылку где почитать об этом, интересует любая информация по теме. |
|
|
8.7.2009, 12:53
Сообщение
#2
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Посмотри тут:
Может найдёшь что-то)) |
|
|
8.7.2009, 16:00
Сообщение
#3
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Чем ломать над этим голову, проще использовать собственную таблицу стран.
Код tCountry = {
AU = "Австралия", AT = "Австрия", AZ = "Азербайджан", AX = "Аландские острова", AL = "Албания", DZ = "Алжир", UM = "Внешние малые острова (США)", VI = "Американские Виргинские острова", AS = "Американское Самоа", AI = "Ангилья", AO = "Ангола", AD = "Андорра", AQ = "Антарктида", AG = "Антигуа и Барбуда", AR = "Аргентина", AM = "Армения", AW = "Аруба", AF = "Афганистан", BS = "Багамы", BD = "Бангладеш", BB = "Барбадос", BH = "Бахрейн", BZ = "Белиз", BY = "Белоруссия", BE = "Бельгия", BJ = "Бенин", BM = "Бермуды", BG = "Болгария", BO = "Боливия", BA = "Босния и Герцеговина", BW = "Ботсвана", BR = "Бразилия", IO = "Британские территории в Индийском океане", VG = "Британские Виргинские острова", BN = "Бруней", BF = "Буркина Фасо", BI = "Бурунди", BT = "Бутан", VU = "Вануату", VA = "Ватикан", GB = "Великобритания", HU = "Венгрия", VE = "Венесуэла", TL = "Восточный Тимор", VN = "Вьетнам", GA = "Габон", HT = "Гаити", GY = "Гайана", GM = "Гамбия", GH = "Гана", GP = "Гваделупа", GT = "Гватемала", GN = "Гвинея", GW = "Гвинея-Бисау", DE = "Германия", GI = "Гибралтар", HN = "Гондурас", HK = "Гонконг", GD = "Гренада", GL = "Гренландия", GR = "Греция", GE = "Грузия", GU = "Гуам", DK = "Дания", CD = "ДР Конго", DJ = "Джибути", DM = "Доминика", DO = "Доминиканская Республика", EU = "Европейский Союз", EG = "Египет", ZM = "Замбия", EH = "Западная Сахара", ZW = "Зимбабве", IL = "Израиль", IN = "Индия", ID = "Индонезия", JO = "Иордания", IQ = "Ирак", IR = "Иран", IE = "Ирландия", IS = "Исландия", ES = "Испания", IT = "Италия", YE = "Йемен", KP = "КНДР", CV = "Кабо-Верде", KZ = "Казахстан", KY = "Каймановы острова", KH = "Камбоджа", CM = "Камерун", CA = "Канада", QA = "Катар", KE = "Кения", CY = "Кипр", KG = "Киргизия", KI = "Кирибати", CN = "Китай", CC = "Кокосовые острова", CO = "Колумбия", KM = "Коморские Острова", CR = "Коста-Рика", CI = "Кот-д’Ивуар", CU = "Куба", KW = "Кувейт", LA = "Лаос", LV = "Латвия", LS = "Лесото", LR = "Либерия", LB = "Ливан", LY = "Ливия", LT = "Литва", LI = "Лихтенштейн", LU = "Люксембург", MU = "Маврикий", MR = "Мавритания", MG = "Мадагаскар", YT = "Майотта", MO = "Аомынь", MK = "Македония", MW = "Малави", MY = "Малайзия", ML = "Мали", MV = "Мальдивы", MT = "Мальта", MA = "Марокко", MQ = "Мартиника", MH = "Маршалловы Острова", MX = "Мексика", MZ = "Мозамбик", MD = "Молдавия", MC = "Монако", MN = "Монголия", MS = "Монтсеррат", MM = "Мьянма", NA = "Намибия", NR = "Науру", NP = "Непал", NE = "Нигер", NG = "Нигерия", AN = "Нидерландские Антильские острова", NL = "Нидерланды", NI = "Никарагуа", NU = "Ниуэ", NC = "Новая Каледония", NZ = "Новая Зеландия", NO = "Норвегия", AE = "ОАЭ", OM = "Оман", CX = "Остров Рождества", CK = "Острова Кука", HM = "Херд и Макдональд", PK = "Пакистан", PW = "Палау", PS = "Палестина", PA = "Панама", PG = "Папуа — Новая Гвинея", PY = "Парагвай", PE = "Перу", PN = "Острова Питкэрн", PL = "Польша", PT = "Португалия", PR = "Пуэрто-Рико", CG = "Республика Конго", RE = "Реюньон", RU = "Россия", RW = "Руанда", RO = "Румыния", US = "США", SV = "Сальвадор", WS = "Самоа", SM = "Сан-Марино", ST = "Сан-Томе и Принсипи", SA = "Саудовская Аравия", SZ = "Свазиленд", SJ = "Шпицберген и Ян-Майен", MP = "Северные Марианские острова", SC = "Сейшельские Острова", SN = "Сенегал", VC = "Сент-Винсент и Гренадины", KN = "Сент-Киттс и Невис", LC = "Сент-Люсия", PM = "Сен-Пьер и Микелон", RS = "Сербия", CS = "Сербия и Черногория", SG = "Сингапур", SY = "Сирия", SK = "Словакия", SI = "Словения", SB = "Соломоновы Острова", SO = "Сомали", SD = "Судан", SR = "Суринам", SL = "Сьерра-Леоне", SU = "СССР", TJ = "Таджикистан", TH = "Таиланд", TW = "Тайвань", TZ = "Танзания", TG = "Того", TK = "Токелау", TO = "Тонга", TT = "Тринидад и Тобаго", TV = "Тувалу", TN = "Тунис", TM = "Туркмения", TR = "Турция", UG = "Уганда", UZ = "Узбекистан", UA = "Украина", UY = "Уругвай", FO = "Фарерские острова", FM = "Микронезия", FJ = "Фиджи", PH = "Филиппины", FI = "Финляндия", FK = "Фолклендские острова", FR = "Франция", GF = "Французская Гвиана", PF = "Французская Полинезия", TF = "Французские Южные и Антарктические Территории", HR = "Хорватия", CF = "ЦАР", TD = "Чад", ME = "Черногория", CZ = "Чехия", CL = "Чили", CH = "Швейцария", SE = "Швеция", LK = "Шри-Ланка", EC = "Эквадор", GQ = "Экваториальная Гвинея", ER = "Эритрея", EE = "Эстония", ET = "Эфиопия", ZA = "ЮАР", KR = "Республика Корея", GS = "Южная Георгия и Южные Сандвичевы острова", JM = "Ямайка", JP = "Япония", BV = "Остров Буве", NF = "Остров Норфолк", SH = "Остров Святой Елены", TC = "Тёркс и Кайкос", WF = "Уоллис и Футуна", } |
|
|
8.7.2009, 16:14
Сообщение
#4
|
|
Постоялец Группа: Пользователи Сообщений: 454 Регистрация: 17.10.2008 Из: Новосибирск Пользователь №: 825 Спасибо сказали: 90 раз |
Да это мной уже недели две как реализовано. Но надо же и о людях подумать - не все сумеют разобраться и задействовать такую таблицу, а положить файл ip-to-country.csv в папку cfg и рестартнуть хаб - это по плечу многим
Вот кстати и таблицы - таблица диапазонов и таблица метаданных. Людям знающим, думаю, пояснений не требуется )) ( Прикрепленные для примера таблицы были удалены 10.07.09, т к вопрос о применении или неприменении термина "метаданные" считаю исчерпанным и тут был выложен непосредственно скрипт, создающий эти таблицы). |
|
|
8.7.2009, 17:14
Сообщение
#5
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Всё же лучше вместо слова "метаданные" использовать слово "подтаблица", для того, чтобы не вводить в заблуждение читающих.
Метатаблицы и метаданные в lua имеют особый смысл. А тут подразумевается подтаблица. |
|
|
8.7.2009, 17:39
Сообщение
#6
|
|
Постоялец Группа: Пользователи Сообщений: 454 Регистрация: 17.10.2008 Из: Новосибирск Пользователь №: 825 Спасибо сказали: 90 раз |
Тут подразумевается ( и имеется ) именно таблица метаданных. Это ясно любому, кто даст себе труд распаковать архив, и посмотреть, что там. Таблица метаданных с именем страны содержит правильное ( не капсовое ) имя страны, два кантри кода и число диапазонов. Основная таблица содержит только чистые, рассортированные диапазоны в числовом виде и синтаксисе Lua - можно подключать и юзать.
Метатаблицы изначально использовались в скрипте, но выяснилось, что в их использовании нет особой необходимости. |
|
|
8.7.2009, 17:48
Сообщение
#7
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Метаданные в lua - это данные, которые содержатся в метатаблице.
Поэтому я и предложил изменить терминологию на подтаблицу что бы не было путаницы. Цитата Lua использует мощную концепцию таблиц метаданных, что, помимо всего прочего, помогает ему преодолеть окончательный отрыв от объектно-ориентированного программирования. Таблица метаданных это обычная таблица в Lua, которая присоединена к данной таблице с помощью встроенной функции setmetatable. Lua использует таблицы метаданных для нескольких специальных функций контроля работы связанных таблиц. Так как в файлах синтаксис lua, то термин метаданные имеет ОСОБЫЙ смысл. |
|
|
8.7.2009, 18:00
Сообщение
#8
|
|
Постоялец Группа: Пользователи Сообщений: 454 Регистрация: 17.10.2008 Из: Новосибирск Пользователь №: 825 Спасибо сказали: 90 раз |
По логике, "подтаблица" - это, по сути, субтаблица.
Таблица - tTable, подтаблица ( субтаблица ) - tTable.tSubTable. Приложенные же таблицы связаны между тобой только по смыслу, но никак не физически. А о смысле слова "метаданные" можно почитать Цитата Структурированные данные, представляющие собой характеристики описываемых сущностей для целей их идентификации, поиска, оценки, управления ими В нашем случае "сущность" - это сумма всех диапазонов страны. А метаданные - это ее метаданные ( о составе таблиц метаданных см.выше ). |
|
|
8.7.2009, 18:12
Сообщение
#9
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Ещё раз повторяю, что из-за того, что используется синтаксис lua, понятие метаданные приобретает другой смысл, отличный от обычного)))
Тогда уж прости пиши: таблицы с данными. Так как я очень много имел дела с метатаблицами и метаданными, то как только кто-либо говорит мне эти слова, я сразу же лезу в файлы и смотрю действительно ли эти слова обоснованы. Поэтому в lua контексте следует избегать использования этих слов во избежании неправильного понимания lua программистами. В общем я думаю, что хватит оффтопить Однако, я просто хотел чтобы на это обратили внимание |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 1:11 |