我目前正在C语言中为学习目的构建一个用于学习目的的IRC机器人。我在处理服务器发送到我的机器人的ident消息时遇到了一些麻烦。我知道我必须在端口113上侦听ident消息并发回一个ident响应。麻烦的是我无法将我创建的套接字绑定到端口113以便侦听该消息。
我有什么方法可以绑定到端口113或其他解决方案吗?另外,如何响应服务器发送的ident消息?
答案 0 :(得分:3)
绑定到低于1024的端口需要Linux上的root访问权限和Windows上的管理员权限。尝试以管理员用户身份运行,看看是否有帮助。如果仍然无法绑定,请在113上检查没有其他服务运行服务:
# Windows
netstat -a | find "listening"
# Linux
netstat -lnptu
同样,您可能需要以root / admin身份运行才能查看正在使用的端口。
您可以在RFC上找到有关Ident的更多信息,http://tools.ietf.org/html/rfc1413这实际上非常简洁。
此外,您可能不一定需要运行Ident服务进行连接(尽管首选!),具体取决于网络。它取决于您连接的服务器,但尝试等待服务器尝试的Ident查询失败并查看其行为。
答案 1 :(得分:1)
响应身份不是您机器人的特权或责任。 ident协议的重点是让机器识别网络客户端正在运行哪个用户,以及客户端连接到的移除服务器;这是为了在发现客户被滥用的情况下识别责任方,以便使滥用用户而不是外壳盒的管理员负责。