Определите, является ли пользователь Idented на IRC

Другая опция я рассматривал: вместо того, чтобы писать собственное средство запуска с нуля, Eclipse идет с исходным кодом для своего собственного средства запуска, и это могло, возможно, повторно ставиться целью для моего приложения.

Это - позор, что Sun никогда не включал ничего подобного в JDK.

10
задан Xiong Chiamiov 6 November 2009 в 01:50
поделиться

5 ответов

В режиме freenode отправка личного сообщения на nickserv с сообщением ACC <имя> вернет число, которое указывает статус идентификатора пользователя:

Ответ находится в форма <имя> ACC <цифра> :

  0 - учетная запись или пользователь не существует
 1 - учетная запись существует, но пользователь не вошел в систему
 2 - пользователь не авторизован, но распознан (см. ДОСТУП)
 3 - пользователь авторизован

Команда STATUS <имя> дает аналогичные результаты для Rizon:

Ответ имеет следующий формат:

<имя> <цифра>

  0 - такого пользователя в сети или имени нет не зарегистрирован
 1 - пользователь не признан владельцем ника
 2 - пользователь признан владельцем только через список доступа
 3 - пользователь признан владельцем по паролю

Преимущества этого метода перед WHOIS:

  1. Информация о статусе идентификатора всегда включена. С помощью WHOIS вы просто не получите строку, говорящую что-то вроде «идентифицирован с помощью nickserv как такой-то», если пользователь фактически не идентифицирован.
  2. Постоянное количество возвращаемых строк. Поскольку я хочу получить сообщение, прежде чем передать управление остальной части моей программы, я могу легко прочитать одну строку из буфера (я вижу проблемы с синхронизацией в будущем!), Определить статус и продолжить как обычно.
20
ответ дан 3 December 2019 в 14:43
поделиться

Nick registration is not part of the IRC standard. It is always offered by customized IRC servers and/or bots. I don't think you're going to find a truly universal solution, but NickServ is a common available implementation, which would work on many networks. Wikipedia has more info.

You may want to sidestep the problem entirely and have your user register with your bot, instead of with nickserv. Your bot would then do the password checking, and would invalidate the user's credentials when the user logs out. This would be a universal solution.

2
ответ дан 3 December 2019 в 14:43
поделиться

Поскольку ваше имя пользователя зарегистрировано, вы делаете это перед тем, как ваш бот войдет в систему. команда:

/ns ghost username password

Эта команда удалит любого пользователя, который вошел в систему под вашим пользователем, помните, что я использовал это только в Freenode, я не знаю, будет ли он работать на другом сервере.

1
ответ дан 3 December 2019 в 14:43
поделиться

With Freenode, if a user is identified to NickServ then their user has the +e mode set. Not sure if Rizon has something similar.

1
ответ дан 3 December 2019 в 14:43
поделиться

UnrealIRCd и hybrd устанавливают + r для зарегистрированных пользователей, я не уверен, что все IRC-серверы делают это, хотя, это довольно нестандартно. Также на Rizon вы можете whois, и он сообщит вам, зарегистрирован ли пользователь.

1
ответ дан 3 December 2019 в 14:43
поделиться