---
title: "Enkel irc-klient skriven i python"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/58254-enkel-irc-klient-skriven-i-python"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Gein"
published: "2002-11-06T17:56:15.000Z"
updated: "2002-11-11T17:38:23.000Z"
replies: 12
views: 480
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/58254-enkel-irc-klient-skriven-i-python"
---

# Enkel irc-klient skriven i python

## #1 — Gein, 2002-11-06T17:56Z

jag är ute efter ett litet program som körs på en linux-server som ska logga allt som sägs i en viss irc-kanal. Min polare tyckte att jag skulle skriva en egen i Python, det skulle tydligen vara väldigt enkelt och inte ta så mycket kod. 

Är lite sugen på att prova själv, man lär sej ju alltid nånting, och undrar om någon här har erfarenhet av det? Det handlar egentligen inte om någon klient i den bemärkelse att den ska kunna prata eller så, utan bara sitta i en kanal o logga allting. Hur är pyhon? Är det svårt/enkelt? :q

Permalänk: https://www.webforum.nu/p/58254

## #2 — spango, 2002-11-06T18:07Z

Python är dödsenkelt! Dessutom är det ett snyggt och allmänt mysigt språk som alla borde kunna. Hur IRC-protokollet är funtat är jag inte bekant med, men det kan inte vara så svårt.

Permalänk: https://www.webforum.nu/p/845974

## #3 — Gein, 2002-11-06T18:08Z

Det säger du? Blir riktigt nyfiken nu, får nog ta o ge mej in i det där så fort jag har lite tid över! Någon som har en bra sida om Python? Gärna om nätverksprogrammering och varför inte mot irc-nät också om det finns. Tankar, idéer och länkar till webbsidor om detta uppskattas! :)

Permalänk: https://www.webforum.nu/p/845977

## #4 — ps, 2002-11-06T18:12Z

Hålle rmed spango mycket lätt och framförallt trevligt/kul språk att koda...
Du får hjälp att indentera rätt om inte annat ;)

<http://www.python.org/>
<http://www.python.org/doc/current/tut/tut.html>

Permalänk: https://www.webforum.nu/p/845982

## #5 — spango, 2002-11-07T15:53Z

Om IRC (efter en 20-sekunders googling ;) ): <http://www.irchelp.org/irchelp/rfc/>

Permalänk: https://www.webforum.nu/p/846739

## #6 — Gein, 2002-11-07T15:58Z

Den där RFC hade jag redan fått tag i, tack ändå! :)

Permalänk: https://www.webforum.nu/p/846747

## #7 — Gein, 2002-11-07T22:04Z

Jag måste få verifiera att python va ett alldeles underbart språk! Mitt lilla program som sitter i en irc-kanal o loggar blev precis funktionsdugligt :) Ska bearbeta programmet en hel del och lägga till massa features.. e ju inte så snyggt skrivet just nu.. men det funkar klocka!  :e

Permalänk: https://www.webforum.nu/p/846986

## #8 — spango, 2002-11-09T12:28Z

Coolt! Får man ta en flukt på den?

Permalänk: https://www.webforum.nu/p/850950

## #9 — Gein, 2002-11-09T14:26Z

självklart, som sagt, e ju inte så optimalt skrivet men:
som det ser ut just nu, håller på att bearbeta det hela tiden.

```
#! /bin/python
import socket, time, string, sys

sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect(('se.quakenet.org', 6667))

for arg in sys.argv:
	arg + "\n"
	
errormsg = ""
print "\nSending USER and NICK\n"
user = "USER knivbot hostname server.org :Knivbot\n"
sock.send(user)
nick = "NICK knivbot\n"
sock.send(nick)
while 1:
	data = sock.recv(1024)
	if not data: break
	##print data
	lines = string.split(data, "\n")
	
	for line in lines:
		##print line
		parts = string.split(line, ":")

		if len(parts) < 1: continue

		if parts[0] == "ERROR":
			errmsg = parts[1]
			
		if len(parts) > 2:
			if parts[2][:12] == "End of /MOTD":
				print "Successfully registered @ qnet"
				print "Joining #knivsta"
				sock.send("JOIN #knivsta\n")
				fileobj = open("public_html/logs/#knivsta.log", "a")
				fileobj.write("\nSession Start: " + time.strftime("%a, %d %b %Y %H:%M:%S") + ", #knivsta\n")
				fileobj.flush()
				fileobj.close
			else:
				msgsplit = string.split(parts[1], " ")
				if len(msgsplit) == 4 and msgsplit[1] == "PRIVMSG":
					msgSaveTo = msgsplit[2]
					msgfrom = string.split(msgsplit[0], "!")
					msgFromNick = msgfrom[0]
					msgFromAddr = msgfrom[1]
					i = 0
					msgText = ""
					del parts[0:2]
					msgText = string.join(parts, ":")
					print "(" + msgSaveTo + ")[" + time.strftime("%H:%M:%S") + "]<" + msgFromNick + "> " + msgText
					
					fileobj = open("public_html/logs/" + msgSaveTo + ".log", "a")
					fileobj.write("[" + time.strftime("%H:%M:%S") + "]<" + msgFromNick + "> " + msgText +"\n")
					fileobj.flush()
					fileobj.close 
				
				elif len(msgsplit) == 3 and msgsplit[1] == "NICK":
					msgSaveTo = "All"
					msgfrom = string.split(msgsplit[0], "!")
					msgFromNick = msgfrom[0]
					msgFromAddr = msgfrom[1]
					msgNewNick = parts[2]
					print "[" + time.strftime("%H:%M:%S") + "]*** " + msgFromNick + " is now known as " + msgNewNick
					
			
		if parts[0] == "PING ":  ## Ping event
		    sock.send("PONG :" + parts[1] + "\n")
		    ##print "PONG :" + parts[1] + "\n"
		    
sock.close()

print "Error occured:\n"
print errmsg
```

Permalänk: https://www.webforum.nu/p/850990

## #10 — spango, 2002-11-10T11:10Z

Snarrigt :)

Permalänk: https://www.webforum.nu/p/851400

## #11 — Gein, 2002-11-10T11:52Z

> **spango skrev:**
>
> Snarrigt :)

vilket betyder? ;)

Permalänk: https://www.webforum.nu/p/851422

## #12 — spango, 2002-11-11T17:35Z

Asså... typ... "najs". Du vet. Vanlig svenska som man talar den i civilisationens hjärta (Nacka/Älta). :D

Permalänk: https://www.webforum.nu/p/852306

## #13 — Gein, 2002-11-11T17:38Z

man lär sej så länge man lever  :)

Permalänk: https://www.webforum.nu/p/852309

---

Tråden på webben: https://www.webforum.nu/amne/programmering/58254-enkel-irc-klient-skriven-i-python
