2011-02-10 2 views
1

Возможно ли использовать inet_ntoa() и не беспокоиться о разрешениях пользователей Windows? Мне нужно поставить блок try/catch вокруг inet_ntoa(), чтобы поймать любые возможные проблемы, если пользовательские разрешения не позволяют мне получить IP-адрес интерфейса?inet_ntoa() и разрешения пользователя Windows

ответ

3

inet_ntoa не вызывает исключений. Он возвращает NULL в случае ошибки.

Трудно понять, как пользовательские права могут войти в эту функцию, поскольку это просто целое число для преобразования строк.

0

документация MSDN для inet_ntoa состояний:..

Если не происходит никакой ошибки, inet_ntoa возвращает указатель символ статический буфер , содержащий текст адреса в стандарт»„“обозначения в противном случае, он возвращает NULL.

в Windows Vista и более поздних версиях функция RtlIpv4AddressToString может быть использована для преобразования адреса IPv4 повторно представленный как структура IN_ADDR для строкового представления адреса IPv4 в стандартном десятичном значении в формате Internet.

+0

@David: Thnx .. :( – ayush

+0

RtlIpv4AddressToString имеет то преимущество, что вам не нужно иметь дело с Winsock инициализации/завершения, но тот факт, что он не работает на XP делает его менее привлекательным –

+0

@David.: хотя его простое преобразование строк, но, вероятно, возможно (возможно), UAC Uista имеет какое-то отношение к этому. Поэтому зачем нужна отдельная функция с одинаковой функциональностью. – ayush

Смежные вопросы