Обработка на идентификатор за моя IRC бот

В момента изграждам IRC бот за учебни цели в C за учебни цели. Имам малко проблеми с обработването на идентификационното съобщение, което сървърът изпраща на моя бот. Знам, че трябва да слушам на порт 113 за идентификационното съобщение и да изпратя обратно идентификационен отговор. Проблемът е, че не мога да свържа сокета, който създадох, към порт 113, за да слушам това съобщение.

Има ли някакъв начин да се свържа с порт 113 или друго решение на този проблем? Също така, как да отговоря на идентификационното съобщение, изпратено от сървъра?


person seraphzero    schedule 10.06.2012    source източник


Отговори (2)


Свързването към портове под 1024 изисква root достъп на Linux и администраторски права на Windows. Опитайте да стартирате като администратор и вижте дали това помага. Ако все още не можете да се свържете, проверете дали нищо друго не изпълнява услуга на 113:

# Windows
netstat -a | find "listening"
# Linux
netstat -lnptu

Отново може да се наложи да стартирате като root/admin, за да видите кои портове се използват.

Можете да намерите повече информация за Ident в RFC, http://tools.ietf.org/html/rfc1413 което всъщност е доста сбито.

Освен това може да не е задължително да стартирате услуга Ident, за да се свържете (въпреки че е за предпочитане!), в зависимост от мрежата. Това ще зависи от сървъра, към който се свързвате, но опитайте да изчакате опитът за заявка за идентификация на сървъра да се провали и вижте как се държи.

person stew    schedule 10.06.2012
comment
Пише, че времето за изчакване на заявката за идентификация е изтекло. след това не можах да намеря вашия идентификационен номер, вместо това използвах ~testbot. преди да продължите и да покажете нормално IRC поведение и да се присъедините към канал. Така че предполагам, че тогава не е необходимо аз да се справям? - person seraphzero; 11.06.2012
comment
Тогава можете да се чувствате свободни да го игнорирате. Малко са сървърите, които го изискват в наши дни, така че ако не е нужно да изпълнявате/подправяте identd, не си правете труда. Интересното е, че ако искате да видите разликата, популярният IRC клиент mIRC има опция за стартиране на identd услуга за IRC връзки. - person stew; 11.06.2012

Отговарянето на ident не е привилегия или отговорност на вашия бот. Целият смисъл на протокола за идентификация е машината да идентифицира кой потребител работи мрежов клиент като сървър за премахване, към който клиентът се е свързал; това е с цел идентифициране на отговорна страна, ако се установи, че клиентът злоупотребява, така че злоупотребяващият потребител, а не администраторът на shell box, да може да бъде подведен под отговорност.

person R.. GitHub STOP HELPING ICE    schedule 11.06.2012