|
#1
|
||||
|
||||
X-Fusion Tracker
##############################################
INCLUDED HACKS ############################################## PHP Code:
FRESH INSTALLATION ############################################## PHP Code:
|
#2
|
|||
|
|||
Re: Torrent Strike*X-Edition
For those that have the
Code:
"Access Denied!","We come to believe you are using a fake account, therefore we've logged this action!" 1. You can open bittorrent.php and on line 55 you will find: Code:
$lsysopnames = array("Admin", "Admin2", "Neptune", "Admin3"); // Case sensitive. Change this (YOUR SYSOP-ADMIN NAMES GOES HERE) (example: array("adminname1","adminname2","adminname3","adminname4","so far") 2. If that doesn`t work you can disable this mod be deleting the: Max. Staff v0.2 by xam mod from "bittorrent.php" Code:
//--------------------------------- //---- Max. Staff v0.2 by xam //--------------------------------- function maxsysop () { global $CURUSER; // Check Staff Names $lmaxclass = 96; $lsysopnames = array("Admin", "admin", "Neptune"); // Case sensitive. Change this (YOUR SYSOP-ADMIN NAMES GOES HERE) (example: array("adminname1","adminname2","adminname3","adminname4","so far") if ($CURUSER["class"] >= $lmaxclass) if (!in_array($CURUSER["username"], $lsysopnames, true)) { // true for strict comparison $msg = "Fake Account Detected: Username: ".$CURUSER["username"]." - UserID: ".$CURUSER["id"]." - UserIP : ".getip(); write_log($msg); stderr("Access Denied!","We come to believe you are using a fake account, therefore we've logged this action!"); } // Check Staff IDS define ('UC_STAFF', 64); // Minumum Staff Level (4= UC_MODERATOR) if ($CURUSER['class'] >= UC_MODERATOR) { $allowed_ID = array(1); // Change this (YOUR SYSOP-ADMIN IDS GOES HERE) (example: array(1,2,3,4,5)) if (!in_array((int)$CURUSER['id'], $allowed_ID, true)) { // true for strict comparison $msg = "Fake Account Detected: Username: ".$CURUSER["username"]." - UserID: ".$CURUSER["id"]." - UserIP : ".getip(); write_log($msg); stderr("Access Denied!","We come to believe you are using a fake account, therefore we've logged this action!"); } } } //--------------------------------- //---- Max. Staff v0.2 by xam //--------------------------------- Code:
maxsysop (); |
#3
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
nice but unsecure
|
#4
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
In utorrent I got this error : HTTP 404!
|
#5
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
Screenshot , where??
|
#6
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
you take screenshot in your site :D
and paste here |
#7
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
Hello, I have just installed the tracker, I have to say that is well made. Congratulations. I have only one problem: If I put a torrent .. I quit on ? torrent: tracker sending invalid data ... how can I solve?
And finally .. which thema reccomended me to install? Thank you all and sorry for the English. :) |
#8
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
I dunno if this helps but try this announce.php...
Works for me :D Code:
<? /* // +--------------------------------------------------------------------------+ // | TorrentStrike X-Edition by Neptune | // +--------------------------------------------------------------------------+ // | This file is part of TorrentStrike X-Edtion. Is based on TBDev, | // | originally by RedBeard of TorrentBits, extensively modified by | // | Gartenzwerg. | // | | // | TorrentStrike is free software; you can redistribute it and/or modify | // | it under the terms of the GNU General Public License as published by | // | the Free Software Foundation; either version 2 of the License, or | // | (at your option) any later version. | // | | // | TorrentStrike is distributed in the hope that it will be useful, | // | but WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // | GNU General Public License for more details. | // | | // | You should have received a copy of the GNU General Public License | // | along with TorrentStrike; if not, write to the Free Software Foundation, | // | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | // +--------------------------------------------------------------------------+ // | TorrentStrike X-Edition by Neptune | // +--------------------------------------------------------------------------+ */ ob_start("ob_gzhandler"); require_once("include/bittorrent.php"); require_once("include/benc.php"); function err($msg) { benc_resp(array("failure reason" => array(type => "string", value => $msg))); exit(); } function benc_resp($d) { benc_resp_raw(benc(array(type => "dictionary", value => $d))); } function benc_resp_raw($x) { header("Content-Type: text/plain"); header("Pragma: no-cache"); print($x); } $req = "info_hash:peer_id:!ip:port:uploaded:downloaded:left:!event:!passkey"; foreach (explode(":", $req) as $x) { if ($x[0] == "!") { $x = substr($x, 1); $opt = 1; } else $opt = 0; if (!isset($_GET[$x])) { if (!$opt) err("missing key"); continue; } $GLOBALS[$x] = unesc($_GET[$x]); } if (ENA_PASSKEY && ( strlen($passkey) != 32 && @mysql_num_rows(@mysql_query("SELECT id FROM users WHERE passkey=" . sqlesc($passkey))) != 1)) err("Invalid passkey! Re-download the .torrent from $BASEURL ($passkey)"); $passkey=sqlesc($passkey); foreach (array("info_hash","peer_id") as $x) { if (strlen($GLOBALS[$x]) != 20) err("invalid $x (" . strlen($GLOBALS[$x]) . " - " . urlencode($GLOBALS[$x]) . ")"); } //if (empty($ip) || !preg_match('/^(\d{1,3}\.){3}\d{1,3}$/s', $ip)) $ip = getip(); $port = 0 + $port; $downloaded = 0 + $downloaded; $uploaded = 0 + $uploaded; $left = 0 + $left; $rsize = 50; foreach(array("num want", "numwant", "num_want") as $k) { if (isset($_GET[$k])) { $rsize = 0 + $_GET[$k]; break; } } $agent = $_SERVER["HTTP_USER_AGENT"]; // Deny access made with a browser... //if (ereg("^Mozilla\\/", $agent) || ereg("^Opera\\/", $agent) || ereg("^Links ", $agent) || ereg("^Lynx\\/", $agent)) // err("torrent not registered with this tracker"); if (!$port || $port > 0xffff) err("invalid port"); if (!isset($event)) $event = ""; $seeder = ($left == 0) ? "yes" : "no"; // Banned Clients - By Petr1fied $filename = "include/banned_clients.txt"; if (filesize($filename)==0 || !file_exists($filename)) $banned_clients=array(); else { $handle = fopen($filename, "r"); $banned_clients = unserialize(fread($handle, filesize($filename))); fclose($handle); } foreach($banned_clients as $k => $v) { if(substr(bin2hex($peer_id), 0, 16) == $v["peer_id"] || substr(bin2hex($peer_id), 0, 6) == $v["peer_id"]) { $client_ban=array($v["client_name"], $v["reason"]); } } if($client_ban) err("I'm sorry, $client_ban[0] is banned from this tracker (".stripslashes($client_ban[1]).")"); // Banned Clients - By Petr1fied $res = mysql_query("SELECT id, banned, free, seeders + leechers AS numpeers, UNIX_TIMESTAMP(added) AS ts FROM torrents WHERE " . hash_where("info_hash", $info_hash)); $torrent = mysql_fetch_assoc($res); if (!$torrent) err("torrent not registered with this tracker"); $torrentid = $torrent["id"]; $fields = "seeder, peer_id, ip, port, uploaded, downloaded, userid, UNIX_TIMESTAMP(last_action) AS ts"; $numpeers = $torrent["numpeers"]; $limit = ""; if ($numpeers > $rsize) $limit = "ORDER BY RAND() LIMIT $rsize"; $res = mysql_query("SELECT $fields FROM peers WHERE torrent = $torrentid AND connectable = 'yes' $limit"); $resp = 'd' . benc_str('interval') . 'i' . $announce_interval . 'e' . benc_str('peers') . (($compact = ($_GET['compact'] == 1))?'':'l'); unset($self); while ($row = mysql_fetch_assoc($res)) { $row["peer_id"] = hash_pad($row["peer_id"]); if ($row["peer_id"] === $peer_id) { $userid = $row["userid"]; $self = $row; continue; } if($compact) { $peer_ip = explode('.', $row["ip"]); $plist .= pack("C*", $peer_ip[0], $peer_ip[1], $peer_ip[2], $peer_ip[3]). pack("n*", (int)$row["port"]); } else { $resp .= "d" . benc_str("ip") . benc_str($row["ip"]) . benc_str("peer id") . benc_str($row["peer_id"]) . benc_str("port") . "i" . $row["port"] . "e" . "e"; } } $resp .= ($compact ? benc_str($plist):''). "ee"; $selfwhere = "torrent = $torrentid AND ". (ENA_PASSKEY ?"passkey=$passkey AND ":'') . hash_where("peer_id", $peer_id); if (!isset($self)) { $res = mysql_query("SELECT $fields FROM peers WHERE $selfwhere"); $row = mysql_fetch_assoc($res); if ($row) { $userid = $row["userid"]; $self = $row; } } //--- Fix Increase ratio using Firefox & Deny access made with a browser ---// $agent = $_SERVER["HTTP_USER_AGENT"]; if (isset($_SERVER['HTTP_COOKIE']) || isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) || isset($_SERVER['HTTP_ACCEPT_CHARSET'])) if (isset($_GET['info_hash']) || isset($_GET['uploaded']) || isset($_GET['downloaded']) || isset($_GET['event'])) { $ip = getip(); write_log("A user has been detected trying to cheat. Their IP address is $ip"); die("Your penis is too small... go eat some brocoli."); } elseif (ereg("^Mozilla\\/", $agent) || ereg("^Opera\\/", $agent) || ereg("^Links ", $agent) || ereg("^Lynx\\/", $agent) || ereg("^curl\\/", $agent)) die("torrent not registered with this tracker"); //---- end of fix ----// //// Up/down stats //////////////////////////////////////////////////////////// if (!isset($self)) { if(ENA_PASSKEY && ENA_PASSKEYLIMITCONNECTIONS) { $valid = @mysql_num_rows(@mysql_query("SELECT id FROM peers WHERE torrent=$torrentid AND passkey=$passkey")); if ($valid[0] >= 1 && $seeder == 'no') err("Connection limit exceeded! You may only leech from one location at a time."); if ($valid[0] >= 3 && $seeder == 'yes') err("Connection limit exceeded!"); } $rz = mysql_query("SELECT id, uploaded, downloaded, class FROM users WHERE ip='$ip' AND enabled = 'yes' ". (ENA_PASSKEY ? "AND passkey=$passkey ":''). "ORDER BY last_access DESC LIMIT 1") or err("Tracker error 2"); if ($MEMBERSONLY && mysql_num_rows($rz) == 0) err("Unrecognized host ($ip). Please go to $BASEURL to sign-up or login."); $az = mysql_fetch_assoc($rz); $userid = $az["id"]; // if ($left > 0 && $az["class"] < UC_VIP) if ($az["class"] < UC_VIP) { $gigs = $az["uploaded"] / (1024*1024*1024); $elapsed = floor((gmtime() - $torrent["ts"]) / 3600); $ratio = (($az["downloaded"] > 0) ? ($az["uploaded"] / $az["downloaded"]) : 1); if ($ratio < 0.5 || $gigs < 5) $wait = 48; elseif ($ratio < 0.65 || $gigs < 6.5) $wait = 24; elseif ($ratio < 0.8 || $gigs < 8) $wait = 12; elseif ($ratio < 0.95 || $gigs < 9.5) $wait = 6; else $wait = 0; if (($elapsed < $wait)&&($seeder == 'no')) err("Not authorized (" . ($wait - $elapsed) . "h) - READ THE FAQ!"); } } else { // Get the last uploaded amount from user account for reference and store it in $last_up $rst = mysql_query("SELECT class, uploaded FROM users WHERE id = $userid") or err("Tracker error 5"); $art = mysql_fetch_array($rst); $last_up = $art["uploaded"]; $class = $art["class"]; $upthis = max(0, $uploaded - $self["uploaded"]); $downthis = max(0, $downloaded - $self["downloaded"]); if ($upthis > 0 || $downthis > 0) mysql_query("UPDATE users SET uploaded = uploaded + $upthis". ($torrent['free']=='no'?", downloaded = downloaded + $downthis ":' '). "WHERE id=$userid") or err("Tracker error 3"); } // Initial sanity check xMB/s for 1 second if($upthis > 2097152) { //Work out time difference $endtime = time(); $starttime = $self['ts']; $diff = ($endtime - $starttime); //Normalise to prevent divide by zero. $rate = ($upthis / ($diff + 1)); //Currently 2MB/s. Increase to 5MB/s once finished testing. if ($rate > 2097152) { if ($class < UC_MODERATOR) { $rate = mksize($rate); $client = $agent; $userip = getip(); auto_enter_cheater($userid, $rate, $upthis, $diff, $torrentid, $client, $userip, $last_up); } } } /////////////////////////////////////////////////////////////////////////////// function portblacklisted($port) { // direct connect if ($port >= 411 && $port <= 413) return true; // bittorrent if ($port >= 6881 && $port <= 6889) return true; // kazaa if ($port == 1214) return true; // gnutella if ($port >= 6346 && $port <= 6347) return true; // emule if ($port == 4662) return true; // winmx if ($port == 6699) return true; return false; } $updateset = array(); if ($event == "stopped") { if (isset($self)) { mysql_query("DELETE FROM peers WHERE $selfwhere"); if (mysql_affected_rows()) { if ($self["seeder"] == "yes") $updateset[] = "seeders = seeders - 1"; else $updateset[] = "leechers = leechers - 1"; } } } else { if ($event == "completed") $updateset[] = "times_completed = times_completed + 1"; if (isset($self)) { mysql_query("UPDATE peers SET uploaded = $uploaded, downloaded = $downloaded, to_go = $left, last_action = NOW(), seeder = '$seeder'" . ($seeder == "yes" && $self["seeder"] != $seeder ? ", finishedat = " . time() : "") . " WHERE $selfwhere"); if (mysql_affected_rows() && $self["seeder"] != $seeder) { if ($seeder == "yes") { $updateset[] = "seeders = seeders + 1"; $updateset[] = "leechers = leechers - 1"; } else { $updateset[] = "seeders = seeders - 1"; $updateset[] = "leechers = leechers + 1"; } } } else { if (portblacklisted($port)) err("Port $port is blacklisted."); else { $sockres = @fsockopen($ip, $port, $errno, $errstr, 5); if (!$sockres) $connectable = "no"; else { $connectable = "yes"; @fclose($sockres); } } $ret = mysql_query("INSERT INTO peers (connectable, torrent, peer_id, ip, port, uploaded, downloaded, to_go, started, last_action, seeder, userid, agent, uploadoffset, downloadoffset, passkey) VALUES ('$connectable', $torrentid, " . sqlesc($peer_id) . ", " . sqlesc($ip) . ", $port, $uploaded, $downloaded, $left, NOW(), NOW(), '$seeder', $userid, " . sqlesc($agent) . ", $uploaded, $downloaded, $passkey)"); if ($ret) { if ($seeder == "yes") $updateset[] = "seeders = seeders + 1"; else $updateset[] = "leechers = leechers + 1"; } } } if ($seeder == "yes") { if ($torrent["banned"] != "yes") $updateset[] = "visible = 'yes'"; $updateset[] = "last_action = NOW()"; } if (count($updateset)) mysql_query("UPDATE torrents SET " . join(",", $updateset) . " WHERE id = $torrentid"); benc_resp_raw($resp); ?> |
The Following User Says Thank You to Kotafi For This Useful Post: | ||
b33z (13th April 2009)
|
#9
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
Thank you for having responded .. I tried .. but always comes out the same mistake:
Code:
tracker sending invalid dates <NULL> |
#10
|
|||
|
|||
Re: Torrent Strike*X-Edition v1.1
Fix error
in cleanup find: Code:
sql_query("DELETE FROM captcha WHERE dateline < $dt") or sqlerr(__FILE__,__LINE__); Code:
mysql_query("DELETE FROM captcha WHERE dateline < $dt") or sqlerr(__FILE__,__LINE__); Code:
CREATE TABLE `captcha` ( `imagehash` varchar(32) NOT NULL default '', `imagestring` varchar(8) NOT NULL default '', `dateline` bigint(30) NOT NULL default '0', KEY `imagehash` (`imagehash`), KEY `dateline` (`dateline`) ) ENGINE=MyISAM; |
The Following User Says Thank You to seb35 For This Useful Post: | ||
b33z (13th April 2009)
|
Tags |
tracker , xfusion |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
TorrentStrike X-Fusion | tunad | Torrent Strike | 2 | 8th December 2008 15:48 |
TorrentStrike X-Fusion problem | tunad | Torrent Strike | 0 | 29th November 2008 20:22 |
CSS styles for TorrentStrike X-Fusion | carloscorp | Torrent Strike | 2 | 20th October 2008 01:39 |
TorrentStrike X-Fusion fresh install help | Rastaman | Community Cafe | 1 | 4th June 2008 20:46 |