Garth J Lancaster
если вы посмотрите на API doc (для csv) API-интерфейс с IP-адресом - КШМ [ИС-АПИ][^] вы увидите, что информация о возврате
успех, страна, код страны,код региона, название региона, город, почтовый индекс, широта,долгота, часовой пояс, имя провайдера, название организации, номер / имя, IP-адрес, используемый для запроса
Итак, если вы делаете строку.Секущиеся
char[] delimiterChars = { ',' };
String[] csvElements = reply.Split(delimiterChars);
string ipCountry = csvElements[1];
или
string ipCountry = csvElements[2];
Если csvElements[0] = = "успех", то есть
Вы можете обернуть все это в функцию, передать int 1 или 2 для "какой" версии страны вы хотите вернуть, вернуть в виде строки или, возможно, строки.Пусто, если не "успех"
[edit] что-то вроде этого (не скомпилировано и не протестировано)
static string getCountryFromReply(string reply, int countryVersion)
{
if (!(reply.Trim().StartsWith(“success”)))
{
return string.Empty;
}
if (countryVersion != 1 && countryVersion != 2)
{
throw new argumentException(“Only 1 or 2 Valid”, “countryVersion”);
}
char[] delimiterChars = {‘,’};
string[] csvElements = reply.Split(delimiterChars);
return csvElements(countryVersion);
}
[/редактировать]
это то, что я имел в виду - вам нужно будет перепечатать его и тщательно проверить, "" - это с моего Mac, VS, скорее всего, будет ругаться на вас, но в этом и суть - вы также можете сделать countryVersion перечислением, чтобы его было легче запомнить,
enum countryVersionReturn {countryLong=1, countryShort};
если вам что-то из этого не нравится, то вы также можете просто запросить нужные вам поля
API-интерфейс с IP-адресом - возвращаемых значений [ИС-АПИ][
^] в вашем случае country, countryCode, я не уверен, что это возвращает статус ie success / fail, я бы всегда включал поле status в любом случае, что означает, что вам все равно придется разделить строку