?
struct hostent hat einen char** h_addr_list , das ist eine Liste von in_addr 's, die du eigentlich nur noch casten musst.
Habe deinen Code mal überflogen und da fallen mir eigentlich ein paar Dinge auf, die mir nicht gefallen. Erstens, packst du in deine sockaddr_in.sin_zero ein weiteres Mal lauter Nullen rein obwohl du doch die Struktur mit lauter Nullen initialisiert hast. Hasts also einmal zu viel drin. Dann castest du auch noch einen Integer in einen Integer, obendrein ein C++-Cast. aber naja, ist wohl Geschmacksache.
Desweiteren rate ich dir entweder eine Bibliothek zu benutzen oder das IRC Protokoll erstmal anständig zu implementieren, bevor du einen Bot baust. Gut, wenns nur mal so dahingeschissen sein soll, ok, aber wenn du einen anständigen Bot schreiben willst bräuchtest du ne Lib dafür. Schreib dir zumindest nen Parser für die Nachrichten.
Und noch was: Ich sag ja nicht, dass du bei solchen Sachen kein C mit C++ mischen sollst, aber so wie du es machst, ist es ziemlich Kacke. Du benutzt kein OO, keine STL, keine kluken Pointer und nichts von alledem. That's not good practice in C++. Wenn du dir wirklich was von dem Programm erwartest, dann schreib es nochmal komplett um, so, dass es besser wartbar und konsistenter ist.
Ahja, und dann noch AF_INET6, falls der Server an den du dich zu verbinden versuchst wirklich nur mit IPv6 Adressen arbeitet.
Und da gibt es auch noch Inkonsistenzen, beim Parsen deiner Nachrichten.