Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: IRC-Galleria satunnaisselaaja

Sahrah [28.04.2008 08:26:23]

#

Tämä on scripti, joka "painelee" irc-gallerian satunainen - nappulaa ja jää siten aina arvan osoittaman käyttäjän vieraslistaan, jos hänellä vain sellainen on käytössä. Tarvitsee toimiakseen kirjautumisevästeen. PHPSESSID

HUOM! Tämä on alunperin tarkoitettu toimimaan komentoriviltä, mutta eiköhän tätä selaimelakin voi ajaa, nuo listaukset tuskin näkyy aivan oikein. Suosittelen kuitenkin komentoriviltä käyttämiseen kun se on niin helppoa ja ihanaa! Selain on perseestä.

Linuxille mielestäni tarvitsee ladata php-cli, joka löytyy varmaan paketienhallinan kautta, windowsille voi tehä vaikka näin:

1. Lataa php:
https://www.php.net/get/php-5.2.5-Win32.zip/from/a/mirror

2. Pura php johonkin hakemistoon.

3. Mene komentorivllä kyseiseen hakemistoon ja kirjoita: php.exe <php tiedoston nimi>. Tämä siis edelyttää skriptin ja php.exen olevan samassa hakemistossa ;)

***HUOM tämä on eka koodi vinkkini, joten voi olla että tein jotain väärin :::S:S ****

<?php
set_time_limit(0); //Ei aikarajaa, no itselläni tästä ei ole hyötyä jos komentorivillä käyttää
function arvo_nick($tulo) { //Painaa satunaista, ottaa parametrinä referille edellisen nickin, jotta näyttäisi palvelimen logissa mahollisiman aidolta ;)
	global $evaste;
	$yhteys = @fsockopen("irc-galleria.net", 80, $errno, $errstr, 10);

	//JOS yhteyttä ei jostakin syystä saada muodostettua, pistetää FAILit ja odotetaan 30sek ja siirrytää seuraavalle kierrokselle
	//Kun noita timeoutteja jostakin syystä näyttää tulevan aina välillä....
	if (!$yhteys) {
		echo "FAIL!!! Odotetaan uutta yhteytt\x86 ......\n";
		sleep(30);
		return $tulo;
	}

	// samoinkun useragentit ettei pistä silmää lokissa
	$p = "GET /random.php HTTP/1.1\r\n";
	$p .= "Host: irc-galleria.net\r\n";
	$p .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fi; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n";
	$p .= "Keep-Alive: 300\r\n";
	$p .= "Connection: close\r\n";
	$p .= "Referer: http://irc-galleria.net/view.php?nick=$tulo\r\n";
	$p .= "Cookie: $evaste\r\n\r\n";

	fputs($yhteys, $p); //Lähetetää herra paketti

	while (!feof($yhteys)) { //Silmukoidaan vastaanotettua dataa
		$gets = fgets($yhteys, 128);
		if (preg_match('/(Location: view.php\?nick=)(.{0,})$/m', $gets)) { //JA erotetaa säännöllisellä lausekkeella se sijainti otsikkotiedoista.
			$nick = preg_replace('/(Location: view.php\?nick=)(.{0,})$/m', "$2", $gets);
			fclose($yhteys);
			return trim($nick);
		}
	}
	@fclose($yhteys);
}

function mene ($nick, $tulo) {
	global $evaste;
	$yhteys = fsockopen("irc-galleria.net", 80, $errno, $errstr, 10);

	//Tässä sama kun edellisessä functiossa
	if (!$yhteys) {
		echo "Odotetaan uutta yhteytt\x86......\n";
		sleep(30);
		return $tulo;
	}

	$p = "GET /view.php?nick=$nick HTTP/1.1\r\n";
	$p .= "Host: irc-galleria.net\r\n";
	$p .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fi; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n";
	$p .= "Keep-Alive: 300\r\n";
	$p .= "Connection: close\r\n";
	$p .= "Referer: http://irc-galleria.net/view.php?nick=$tulo\r\n";
	$p .= "Cookie: $evaste\r\n\r\n";

	fputs($yhteys, $p); //Lähetetää paketti perkele
	fclose($yhteys);
}

//Kirjautumiseväste PHPSESSID (näkee selaimen asetuksista, mutta itse käytän ainakin firefoxille, pluginia, jolla voimuokata evästeitä:
$evaste = 'PHPSESSID=TÄHÄN_ID_SI';
//Montako kertaa painetaan Satunnaista
$maara = 4000;

for ($i = 0; $i < $maara; $i++) { //Silmukoi noita kahta funktiota...

	$nick = arvo_nick($tulo);
	mene($nick, $tulo);
	echo "Kierros $i k\x84yty: $nick\n";
	$tulo = $nick; //Pistetää talteen seuraavaa kierrosta varten niille referereille
}

?>

tsuriga [29.04.2008 13:42:01]

#

W-t-f, 8000 kyselyä galleriaan per ajo? Siinä ei paljon palvelimen logeissa refererit enää paina. Eikä tämä ees tee mitään, kuhan rasittaa palvelinta?

EDIT: Idea ilmeisesti sama kuin seuraavassa vinkissäsikin. Heitän kommentin myös sinne.

Sahrah [30.04.2008 09:19:44]

#

Kuten jo suomi24 palvelusta toisessa koodivinkissäni totesin, tämäkin palvelu lienee niin suuri, ettei lähes 10 000 haun extramäärä rivejä logeissa meinaa mitään, kun niitä jo oman veikkaukseni mukaan tulee yhdessä päivässä satoja tuhansia.
Lisäksi jokaisella scriptin ajajalla on mahdollisuus muokata $maara muuttujan arvoa haluamakseen.

Tietysti olisi kilttiä lisätä jokin odotustoiminto hieman hidastamaan tahtia.

Scriptin kuvauksessa lukee tarkoitus, eli jäädä monen ihmisen vieraslistaan ;) Joilekin julkisuuden saaminen IRC-Galleriassa on elämäntyö :P:P

Vastaus

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

Tietoa sivustosta