Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++, PHP: Irc Bot pohja

Sivun loppuun

Hellami [11.09.2004 15:47:54]

#

Tietääkö joku mistä saisi mahdollisimman yksinkertaisen sourcen esimerkiksi kuinka c++:lla saisi tehtyä botin irc:n?
aino mitä itse löysin oli php:lla tehty, et jos joku jaksais kääntää sen c++:lle? no jaksaa tai ei php botti näyttää tältä:

<?php
$Server = "irc.quakenet.org";			// IRC Server to connect to.
$Port = "6667";					// Port to use when connecting to the server.
$Channel = "#testi1";				// Channel to join on connect.
$Nick = "MinioN^^";				// Nickname to use. (At current, regexp characters are NOT supported)
$CommandPrefix = "!cmd";			// Prefix for all commands.

/* Administrator hostname regexp, used for verifying the admin is the only one who can execute commands. If you have a atatic hostname, enter it as:
$AdminRegExp = "/~name@some.hostname.net/";
*/
$AdminRegExp = "/[~]dave\@modem-([0-9]{2,4}).([a-z]{4,15}).dialup.pol.co.uk/";

set_time_limit(0);
$Connection=fsockopen($Server, $Port);
while($Message=fgets($Connection,512)) {
	if (preg_match("/PING :/", $Message)) {
		$PingPong = str_replace("PING", "PONG", $Message);
		fputs($Connection, $PingPong."\n\n");
	}
	if ($SentConnectionDetails == NULL) {
		fputs($Connection, "USER ".$Nick." localhost localhost :Daves Bot\n\n");
		fputs($Connection, "NICK ".$Nick."\n\n");
		$SentConnectionDetails = "1";
	}
	if ($JoinedChannel == NULL) {
		fputs($Connection, "JOIN ".$Channel."\n\n");
		$JoinedChannel = "1";
	}

	if (preg_match("/ PRIVMSG ".$Nick." :/", $Message)) {
		$PrivateMessage = preg_split("/ PRIVMSG ".$Nick." :/", $Message);
		$From = preg_split("/!~/", $PrivateMessage[0]);
		$Hostname = "~".$From[1];
		$From = str_replace(":", "", $From[0]);
		$Message = chop($PrivateMessage[1]);
		$Message = explode(" ", $Message);

		if (preg_match($AdminRegExp, $Hostname)) {
			if ($Message[0] == $CommandPrefix."OpMe") {
				fputs($Connection, "MODE ".$Channel ." +o ".$From."\n\n");
			}
			if ($Message[0] == $CommandPrefix."VoiceMe") {
				fputs($Connection, "MODE ".$Channel ." +v ".$From."\n\n");
			}
			if ($Message[0] == $CommandPrefix."KillBot") {
				fputs($Connection, "QUIT\n\n");
			}
			if ($Message[0] == $CommandPrefix."Kick") {
				fputs($Connection, "KICK ".$Channel." ".$Message[1]." :".$Message[2]."\n\n");
			}
			if ($Message[0] == $CommandPrefix."Ban") {
				fputs($Connection, "MODE ".$Channel." +b ".$Message[1]."!*@*\n\n");
			}
			if ($Message[0] == $CommandPrefix."UnBan") {
				fputs($Connection, "MODE ".$Channel." -b ".$Message[1]."!*@*\n\n");
			}
			if ($Message[0] == $CommandPrefix."Join") {
				fputs($Connection, "JOIN ".$Message[1]."\n\n");
				$Channel = $Message[1];
			}
			if ($Message[0] == $CommandPrefix."Part") {
				fputs($Connection, "PART ".$Message[1]."\n\n");
			}
		}
	}
}
?>

et jos joku ton jaksais kääntää c++:lle tai antais linkkiä missä olis vastaava jo valmiina ni ISO kiitos jo etukäteen!

ezuli [11.09.2004 17:56:06]

#

http://coding.projectjj.com/c_botclient.php
Tuolla on joku ircbot-sorsa, en tutkinut tarkemmin.

Metabolix [11.09.2004 22:43:42]

#

Ohjeet kirjoitti:

8. Älä pyydä valmista koodia. Ohjelmointiputkan tarkoitus on auttaa ohjelmointiongelmissa mutta ei tehdä ohjelmia kysyjän puolesta. Erityisesti koulutehtävistä on syytä suoriutua itse. Pitemmällä aikavälillä oma todellinen ohjelmointitaito on huomattava etu.

Joten siitä vaan itse kääntämään.

hunajavohveli [12.09.2004 10:48:00]

#

Minua kiinnostaisi ihan sinänsä, miten botin saa lähettämään ja vastaanottamaan tietoa IRC:stä. Jonkinlaisen tekoälyn osaisin nimittäin luultavasti väsätä, joka analysoisi keskustelun tietoa, ja päättäisi, mitä tulisi lähettää vastaukseksi.

tejeez [12.09.2004 10:51:18]

#

hunajavohveli kirjoitti:

Minua kiinnostaisi ihan sinänsä, miten botin saa lähettämään ja vastaanottamaan tietoa IRC:stä. Jonkinlaisen tekoälyn osaisin nimittäin luultavasti väsätä, joka analysoisi keskustelun tietoa, ja päättäisi, mitä tulisi lähettää vastaukseksi.

Lue http://www.funet.fi/rfc/rfc1459.txt

Hellami [14.09.2004 02:53:04]

#

tiedoksi vain Metabolixille tosta kommentista, et toi ei olis mikään hemmetin valmis koodi, vaan koodi "esimerkki" sen yhteyden muodostamisesta ja sen tiedon lähettimistä ja vastaan ottamista. Ja toiseksi mulla ei riitä yksinkertasesti aika 5:n ohjelmointikielen opiskeluun et alkaisin viä c++:aa opettelee niin hyvin et osaisin ton kääntää ilman valmista mallia...
mut mulkku mikä mulkku oot... näkee jo tosta sun viestistäs "Joten siitä vaan itse kääntämään" huoh järjessä vikaa? en olis pyytäny mitään linkkiä mis olis esimerkki tai kääntämään tota et saisin siitä sen esimerkin, ku esimerkkikin tuo on, mut vaan php:lle...

Edit:
No okei, sun ikäs kertoo aika paljon tosta sun viestistä jo...

Metabolix [14.09.2004 06:03:03]

#

No ruvetaankos sitä nyt oikein haukkumaan?
Jos saa kysyä, niin mitä oikein teet C++ -koodilla, jos joku sen kääntää ja kun et kerran edes osaa C++:aa niin hyvin, että voisit tuon kääntää?
Isoja kirjaimia ja pilkkujakin saa muuten viesteissä käyttää.

Hellami [14.09.2004 14:49:52]

#

AI SAA VAI? toi oli pahaveto, ja en, en hakkunu, yleensä tohon ikäluokkaan kuuluu tollanen pilkunnussinta... ja et oo kuullu koskaa sellasesta et ihmisiä on erilaisia? Jotkut oppii paremmin esimerkeistä jotkut lukemalla kirjan jossa on puolet turhaa jaarittelua... Ja minä kuulun niihin jokka oppii toisten koodeja lukemalla, php:ta en oo riviäkään oppaista lukenu ja silti osaan sitä paljon laajemmin ku mitä yhdestä tai kahdesta oppaasta oppis, arvaa miks? oon opetellu valmiista koodista ja kun kerran osaa muitakin kieliä niin sitä on paljon hyötyä ni php:n tulkitteminen oli suht helppoa.

Aruviel [14.09.2004 15:21:08]

#

Sinuna Hellami menisin vähän itseeni ja miettisin, mitä tuli sanottua. Jotain asiallisuutta ja järkeä voisi käyttää tuossa argumentoinnissakin. Vaikka oletkin vanhempi ja viisaampi, kuten viesteistäsi se tulee hyvin esille.

firebug [14.09.2004 15:33:45]

#

Hellami: murekuhasta löytyy pari opasta, joissa opetetetaan socket-ohjelmointia. Tutki niitä esimerkkejä ja kokeile tehdä ensin joku helpompi ohjelma niiden avulla. Googlesta löytyy lisätietoa, kun vain jaksaa etsiä. Gametutorials.comista löytyy myös koodivinkkejä winsockejen kanssa pelaamiseen.

Suorat linkit kaikkiin:
http://mureakuha.com/artikkelit/7
http://mureakuha.com/artikkelit/12
http://gametutorials.com/Tutorials/Networking/Networking_Pg1.htm

Dual [14.09.2004 15:46:03]

#

Johan on viestien taso täälläkin laskenut kun ei ole pariin kuukauteen tullut näitä luettua... jos kuitenkin pyhitettäisiin tämä foorumi ohjelmoinnille ja jauhettaisiin paskaa jossain muualla.

Metabolix [14.09.2004 16:12:12]

#

Mainittakoon vielä, että C++:lla ei moinen ole aivan niin yksinkertaista kuin PHP:llä, joten kannattaa harkita jotakin muuta ohjelmaa kuin IRC-botti.

mankeli [14.09.2004 20:08:17]

#

Hyvä Herra Metabolix, suosittelisin teitä lukemaan RFC:n joka löytyy googlesta hakusanalla "irc rfc". Se antaa hyvät ohjeet IRC-protokollan käyttöön.

Metabolix [14.09.2004 20:31:21]

#

Enhän minä ole mitään ohjeita pyytänyt. Sitä paitsi, tuolla ei ole mitään C++ -kieleen liittyvää, joten sillä tuskin on mitään tekemistä muiden kuin Hunajavohvelin kysymyksen kanssa. IRC-botin ensimmäinen ongelma on kuitenkin yhteyden muodostaminen ja tiedonsiirto. Vasta näiden jälkeen on syytä miettiä siirrettävän tiedon sisältöä.

ajv [14.09.2004 23:05:00]

#

Paskanjauhaminen jatkuu:

Metabolix kirjoitti:

Joten siitä vaan itse kääntämään.

Huono päivä minulla vai mikä, mutta kyllä tommonen vastaus asiallisesti muotoiltuun viestiin nostaa niskakarvat pystyyn. Metabolix voisi itse nyyppänä lukea putkan ohjeet tarkemmin läpi.

Ohjeet kirjoitti:

Tiivistelmä: Lähetä kunnollisia viestejä ja ole ystävällinen muita kohtaan.

Ikävä kyllä nyt itsekkin sorrun tähän paskanjauhantaan. Parempi lähteä nukkumaan.

Niin ja vielä sen verran: tuota sääntöjen kohtaa "Älä pyydä valmista koodia" tulkitaan ihan liian kirjaimellisesti. Jos pyytää esimerkkiä jostain, niin heti on jo joku lainailemassa tuota "Keskustelun ohjeet kirjoitti blaa blaa..." Koodinpätkiinhän tämä foorumi pitkälti perustuukin. Itse en ala muille tekemään koodia. Jos kuitenkin sattuu olemaan varastossa valmis koodi juuri jonkun ongelmaan, niin pistän sen ilomielin näytille. Ja sehän nyt on valmis koodi jos mikä. Harvoin ne muiden tekemät koodit palvelevat kuitenkaan sitä omaa tarkoitusta 100-prosenttisesti. Mutta valmiita koodeja muokkaamalla myös oppii tehokkaasti.

Metabolix [15.09.2004 16:54:49]

#

Hieman vaikuttaa, ettei kysyjä ole itse edes etsinyt. Source C++ IRC-bot antaa Googlesta jo aika mukavasti tuloksia.

Kuten Ezuli jo löysi:
http://coding.projectjj.com/c_botclient.php

Tuolta löytyvästä botista tosiaan näkee hyvin, että C:llä ei yhteyttä hoidetakaan aivan yhtä helposti, kuin PHP:llä.

Hellami [17.09.2004 00:28:24]

#

Kyllä googlella löyty (ja muualtakin vastaavia) mut etsinkin vain niin pelkistettyä esimerkkiä ku voi vaan olla, en valmista bottia. Ja googlelta siirryin tänne, toivoen muun laista kommenttia ensimmäiseltä ku "siitä vaan itse kääntämään"...

janux [25.09.2004 20:01:33]

#

Nerokasta pyytää toisia tekemään työt ko ei ite viiti opetella

remontti-reiska [25.09.2004 21:56:54]

#

Oppaista oppii hyvin jos se on osaavalla kädellä kirjoitettu, kuten myös valmiista koodista, jos sen on osaavalla kädellä kommentoitu.

Jos haluaa oppia C:llä yhteyksiä ottamaan ja paketteja lähettemään/vastaanottamaan kannattaa lukaista Weicon opas Mureakuhassa vaikka se ei ihan sitä keveintä luettavaa olekkaan. Nimittäin lopullinen osaaminen palkitsee hyvin. Perustaidot kannattaa kyllä olla ensin hanskassa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta