Tutorials >
PHP >
IRC-bot in PHP (Sockets)
|
Gepost op: 08 juli 2006 - 13:25 |
|
|
|
PHP gevorderde
|
Ja nemesiskoen
En er zijn nog deze fouten:
$u = 'Google zoeken: http://www.google.be/search?q='.urlencode($zoekstring));
$u = 'Google zoeken: http://www.google.be/search?q='.urlencode($zoekstring));
moet
$u = 'Google zoeken: http://www.google.be/search?q='.urlencode($zoekstring);
$u = 'Google zoeken: http://www.google.be/search?q='.urlencode($zoekstring);
&
schrijf('NOTICE '.nickname($eData[0]).' : '.$u;
schrijf('NOTICE '.nickname($eData[0]).' : '.$u;
moet
schrijf('NOTICE '.nickname($eData[0]).' : '.$u);
schrijf('NOTICE '.nickname($eData[0]).' : '.$u);
|
|
|
|
Gepost op: 08 juli 2006 - 13:29 |
|
|
|
Erelid
|
Ohja juist, het is omdat ik die zooi nog iets anders heb op m'n eigen bot, en dat ik het merendeel heb moeten herschrijven om het minder complex te maken.. en bij die google zooi heb ik die $u niet, maar zet ik dat gelijk op 1 lijn, maar dan is de SiMa layout weer naar de ... zal het even wijzigen
edit: bij deze |
|
|
|
Gepost op: 08 juli 2006 - 14:45 |
|
|
|
PHP ver gevorderde
|
Maar door dat in een while-loopje te steken. Vraag dat dan niet veel van uw server? (computer) of valt dat nog mee? |
|
|
|
Gepost op: 08 juli 2006 - 15:56 |
|
|
|
Erelid
|
Nope Dat is zeer weinig, don't worry. |
|
|
|
Gepost op: 08 juli 2006 - 21:38 |
|
|
|
Nieuw lid
|
Citaat: Je ziet dat we als hostname 0 geven. Normaal gezien moet je hier je eigen IP ingeven, maar dit is niet altijd evident als je een dynamisch IP hebt. In de meeste gevallen werkt 0. Als dit niet werkt, geef dan je netwerk-ip in als je in een netwerk zit, en je normaal IP als je pc rechtsreeks aan het internet hangt.
<?php
$config['hostname'] = 0;
?>
<?php $config['hostname'] = 0; ?>
Veranderen in
<?php
$config['hostname'] = $_SERVER['SERVER_ADDR'];
?>
<?php $config['hostname'] = $_SERVER['SERVER_ADDR']; ?>
|
|
|
|
Gepost op: 08 juli 2006 - 23:28 |
|
|
|
Erelid
|
Onzin.
[SERVER_ADDR] => 127.0.0.1
Kan je dus niks mee aanvangen. |
|
|
|
Gepost op: 09 juli 2006 - 08:11 |
|
|
|
Crew algemeen
|
Juist murfy:
_SERVER["SERVER_ADDR"] 195.238.74.74
ik zie het^^ |
|
|
|
Gepost op: 09 juli 2006 - 11:38 |
|
|
|
Nieuw lid
|
Van php.net
Citaat: 'SERVER_ADDR'
The IP address of the server under which the current script is executing.
Moest het zijn wat jij zegt, kun je er inderdaad niets mee aanvangen, dan zou die variable zelfs totaal nutteloos zijn. Dat is ie dus niet
Tuurlijk, als je er via localhost naar toe gaat zal hij 127.0.0.1 geven, omdat dat het ip van de localhost is. Maar laat het eens echo'en op een andere server, en je krijgt het ip van de server.
Nog 1 iets.
Ik heb alles in een php-pagina gezet die jij in je tutorial zette. Maar er gebeurt niets. Als ik via cmd hem laad, dan doet ie ook niets.
Kan het zijn dat dit gebeurt omdat je helemaal niet verbind met de server? Je zet wel wat er moet gebeuren als hij niet kan verbinden, maar je verbind niet, dacht ik.
Of zit ik fout? |
|
|
|
Gepost op: 09 juli 2006 - 13:52 |
|
|
|
Erelid
|
@Hierboven: op een externe server werkt dat dan misschien wel, maar er zijn veel mensen die die dingen op localhost draaien, en als ik daar dan die variabele zou zetten krijg ik tig comments dat het niet werkt.
En wat betreft dat connecten:
<?php
if(!socket_connect($socket,$config['server'],$config['poort'])) {
die('Fatale fout tijdens connecteren met server');
// In dit geval is er mogelijks een probleem met de server (bestaat niet, downtime,...)
}
?>
<?php die('Fatale fout tijdens connecteren met server'); // In dit geval is er mogelijks een probleem met de server (bestaat niet, downtime,...) } ?>
Daar wordt toch geconnect lijkt me.. |
|
|
|
Gepost op: 09 juli 2006 - 13:58 |
|
|
|
Nieuw lid
|
Dan ligt het aan mij. Heb je msn? |
|
|
|
Gepost op: 09 juli 2006 - 14:10 |
|
|
|
Erelid
|
Ja, en die krijg je niet.
Ik ben nu even bezig met de code uit die tutorial opnieuw te testen voor de zekerheid. Moment.
Blijkbaar moet er toch iets misgegaan zijn in m'n testproces, aangezien het inderdaad niet klopte. Ik heb de stukken code even herdaan, en er een voorbeeld bij gezet wat hier foutloos werkte. |
|
|
|
Gepost op: 09 juli 2006 - 15:54 |
|
|
|
Nieuw lid
|
Ik heb je werkend voorbeeld even geprobeerd.
Uit cmd:
Socket aangemaakt
Verbinding gekoppeld aan hostname
Verbinden...
Warning: socket_read(): unable to read from socket[0]: de bewerking is voltooid.
in d:\xampp\htdocs\desst-bot\murfbot.php on line 35
Ben je zeker dat die op windows werkt?
EDIT
in de versie die je eerst gaf (voor je het werkende voorbeeld er bij zette) heb ik eens die @ voor socket_read weggedaan. Dan komt dezelfde error voor. |
|
|
|
Gepost op: 09 juli 2006 - 16:46 |
|
|
|
Erelid
|
Ik heb hem daarnet hier getest op Windows en hij werkt. |
|
|
|
Gepost op: 09 juli 2006 - 20:08 |
|
|
|
Erelid
|
Het moet zijn dat jouw php geen sockets ondersteunt.. Google. |
|
|
|
Gepost op: 09 juli 2006 - 20:32 |
|
|
|
Nieuw lid
|
Murfy, ik kan geen problemen hebben met sockets want andere bots die sockets gebruiken werken probleemloos.. ik wou gewoon die van jou gebruiken omdat ie eenvoudig is.
Mss heb je ergens toch nog een fout in je voorbeeld gepost, kun je me anders eens de werkende die op jou pc staat mailen? |
|
|
|
Gepost op: 09 juli 2006 - 20:52 |
|
|
|
Erelid
|
De werkende die op mijn pc staat staat bij puntje 4 in de tutorial. |
|
|
|
Gepost op: 08 augustus 2006 - 12:48 |
|
|
|
Crew algemeen
|
heb ik je dit stuk code niet ooit doorgestuurd in de vorm van een bot voor linuxmasters? |
|
|
|
Gepost op: 03 september 2006 - 17:55 |
|
|
|
Nieuw lid
|
hmm, ik heb het geprobeerd, maar ik krijg de volgende error;
Fatal error: Function name must be a string in c:\wamp\www\phpbot.php on line 18
Fatal error: Function name must be a string in c:\wamp\www\phpbot.php on line 18
ik heb hem uitgeprobeerd in de browser ( handig om syntax errors e.d. te vinden vind ik ) en dat kreeg ik dus.
als ik het via de console probeer, opent ie phpbot.php in kladblok- maar draait hem niet
wat is er aan de hand? alvast bedankt |
|
|
|
Gepost op: 03 september 2006 - 21:11 |
|
|
|
HTML interesse
|
je moet dan ff c:\wamp\php\php.exe c:\wamp\www\phpbot.php
om hem te openen in een consolse |
|
|
|
Gepost op: 03 september 2006 - 21:19 |
|
|
|
Nieuw lid
|
hmm,
Fatal error: Call to undefined function socket_create() in C:\wamp\www\phpbot.ph
p on line 15
Fatal error : Call to undefined function socket_create() in C :\wamp\www\phpbot .ph p on line 15
wat ik toch erg raar vind, ik heb alle extensies vrijwel openstaan, en heb de socket extensie nog ervoor gechecked. erg raar |
|
|
|
Gepost op: 18 november 2006 - 00:15 |
|
|
|
PHP gevorderde
|
Ik ga hier eens wat mee doen klinkt best interresant... En het is zelfs mogelijk om nog verder te gaan dan gewone MIRC taal |
|
|
|
Gepost op: 31 januari 2007 - 16:17 |
|
|
|
Nieuw lid
|
@echo off
C:\webserver\xampp\php\php.exe -f "bot2.php"
C:\webserver\xampp\php\php.exe -f "bot2.php"
opslaan als .bat file
|
|
|
|
Gepost op: 14 april 2007 - 13:42 |
|
|
|
Nieuw lid
|
Als ik hem uitvoer via cmd zegt hij.
Fatal error: all to undefined function socket_create() in C:\wamp\php\bot.php on line 11.
Ik heb php 5 dus daar kan het niet aan liggen. |
|
|
|
Gepost op: 16 juli 2007 - 11:05 |
|
|
|
PHP interesse
|
Citaat: [I][B]webstab[/B] schreef op 08 juli 2006 - 14:45[/I]
Maar door dat in een while-loopje te steken. Vraag dat dan niet veel van uw server? (computer) of valt dat nog mee?
Citaat: [I][B]Murfy[/B] schreef op 08 juli 2006 - 15:56[/I]
NopeĀ Dat is zeer weinig, don't worry.
Hier gebruikt het constant 100% CPU usage , weet iemand hier een beter alternatief voor ? |
|
|
|
Gepost op: 19 augustus 2007 - 15:43 |
|
|
|
Crew algemeen
|
scoty: dat is niet waar. Dan heb je waarschijnlijk ergens een leak oid
deze bot zal trouwens af en toe nog een timeout geven. Beter is om de datavariabele binnen de while-lus te defineren, en de while-lus als parameter gewoon TRUE meegeven; dus:
while(TRUE)
{
}
deze while-lus zal nooit stoppen, buiten met break;, exit(), of die() |
|
|
|
Gepost op: 15 januari 2008 - 19:06 |
|
|
|
PHP interesse
|
ik wil die google functie gebruiken. maar als ik die erin zet en hem uitvoer dan logt de bot uit.
Ook werk dat ping en pong nij mij niet... |
|
|
|
Gepost op: 17 januari 2008 - 18:00 |
|
|
|
Lid
|
wimmarien schreef: scoty: dat is niet waar. Dan heb je waarschijnlijk ergens een leak oid
deze bot zal trouwens af en toe nog een timeout geven. Beter is om de datavariabele binnen de while-lus te defineren, en de while-lus als parameter gewoon TRUE meegeven; dus:
while(TRUE)
{
}
deze while-lus zal nooit stoppen, buiten met break;, exit(), of die()
heb dit ervan gemaakt:
while(TRUE) {
$data = socket_read($socket,65000,PHP_NORMAL_READ);
en de rest
eerst ging de bot weg na 2x iets zeggen, nu gaat dat wel goed, maar nog steeds na 5-8 minuten is die weg...
iemand die me met dat kan helpen?
|
|
|
|
Gepost op: 23 januari 2008 - 00:17 |
|
|
|
Nieuw lid
|
Hallo,
Zo ver is het een goed script, maar zou je me kunnen helpen met het 1 en het ander namelijk:
Ik wil dat het verbinding maakt met me server,
Een lijst maakt van de servers die dan gelinked zijn,
De totale userload uitvogelt,
En aantal kanalen (misschien een lijst (met een link naar een applet))
En dan alle info in een MySQL database propt.
Aangezien me kennis gelimiteerd is kan ik dat niet uitvogelen hoe of wat.
Alle hulp word gewaardeerd, behalve "Google is you're friend"
Dank jullie wel,
- Rob de Jonge |
|
|
|
Gepost op: 01 maart 2008 - 16:59 |
|
|
|
PHP interesse
|
ik gebruik dit script en het werkt goed.
Alleen ik heb de nick van de bot geregristeerd. iemand een idee hoe je je met de bot kan aanmelden(normaal /msg NickServ IDENTIFY pass) |
|
|
|
Gepost op: 02 september 2008 - 21:46 |
|
|
|
HTML beginner
|
Zeer late reactie:
PRIVMSG NickServ :IDENTIFY pass |
|
|
|
Gepost op: 07 januari 2009 - 17:52 |
|
|
|
Nieuw lid
|
bij mij werkt de functie "schrijf" om een of andere reden niet.. alles werkt (is getest) behalve die functie,, |
|
|
|
Gepost op: 14 februari 2010 - 21:39 |
|
|
|
Nieuw lid
|
Ik heb het werkende voorbeeld overgenomen en werkt goed.
Echter als ik het google gedeelte toevoeg krijg ik het niet werkend.
De bot blijft gewoon maar hij reageerd niet.
Hoe kan ik dit oplossen? |
|
|
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties. |
|
|
|