Как определить, является ли URL-адрес IP-адресом в C / C ++?

0

Я использую кальмаров и нуждаюсь в некоторой настройке. У меня есть список IP-адресов, для которых необходимо предпринять некоторые действия. Не могу использовать директивы acl squid, поскольку последнее действие должно быть принято другим сервером.

Мне нужно проверить, является ли доступным URL-адресом действительным IP-адресом или нет. Если это так, мне нужно внести некоторые изменения в заголовок.

Я пробовал делать это с помощью регулярных выражений, похоже, не работает хорошо.

^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$

Также он будет терпеть неудачу в случае адреса IPv6.

Существует ли API C/C++, с помощью которого это можно определить?

Pls предлагает.

Теги:
url
http
ip-address
squid

1 ответ

0

Вероятно, вам нужен inet_pton, который возвращает -1 при сбое и поддерживает как IPv4, так и будущие IPv6-адреса. Если вам все еще нужно написать свою собственную систему IP-адресов, помните, что стандартный 32-разрядный шестнадцатеричный номер является допустимым IP-адресом, но не в десятичной форме.

Эта функция проверяет адрес, а также позволяет использовать один и тот же адрес в связанных вызовах сокетов.

(Из сообщения Raymond Martineau здесь: Как вы подтверждаете, что строка является допустимым адресом IPv4 в C++?)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню