Seite 1 von 1

IP Adresse umwandeln

Verfasst: 29.11.2008 14:15
von Helmut
Hallo,

ich bastle gerade an einem Konverter, welcher die IP Adresse welche beim Registrieren mitgeloggt wurde, in das neue Forum übernimmt. Im phpBB2 hatte ich dazu den Mod Registration IP 2.0.0 von Antony Bailey eingebaut. Dieser legt aber die IP als HEX z.B. 3ef6b9c3 ab, was dann 62.246.185.195 ergibt. Beim phpBB3 wird in der Tabelle phpbb_users in der Spalte user_ip die IP in Klartext, also Dezimal angezeigt.

Die Konvertierung sprich die Übernahme der Einträge funktioniert schon, nur muss die IP noch umgewandelt werden. Wie muss ich es machen, damit die IP als Klartext in die Spalte user_ip eingetragen wird?

Gruß Helmut :wink:

Verfasst: 29.11.2008 14:36
von nickvergessen
Ich hatte das Problem bei der Gallery auch:

Code: Alles auswählen

		function decode_ip($int_ip)
		{
			$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
			$phpbb3_ip = hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);

			return $phpbb3_ip;
		}

Verfasst: 29.11.2008 18:04
von Helmut
Hallo nickvergessen,

danke dir für die Info, damit hat es wunderbar geklappt. Nun werden auch die IP's bei der Registrierung vom alten Forum bei der Konvertierung mit übernommen, falls man den Mod eingebaut hatte.

In der functions_phpbb20.php habe ich folgende Funktion eingebaut:

Code: Alles auswählen

/**
* Convert User_IP from User_ip MOD to phpBB Format
*/
function phpbb_get_userip($userip = '')
{
	$userip = (string) $userip;

	if (!$userip)
	{
		//return ' 0.0.0.0';
		return;
	}
	else
	{
		$hexipbang = explode('.', chunk_split($userip, 2, '.'));
		$phpbb3_ip = hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
	}

	return (string) $phpbb3_ip;			
}
Un in der convert_phpbb20.php sind diese Teile drinnen:

Code: Alles auswählen

	//-- mod : user_IP ------------------------------------------------------------
	
		$sql = "SELECT user_regip
			FROM {$convert->src_table_prefix}users
			WHERE user_id = " . ANONYMOUS;
		$result = $src_db->sql_query($sql);
		
		if ($result !== false)
		{
			define('MOD_USER_IP', true);
		}
		
		$src_db->sql_freeresult($result);

	//----------------------------------------------------------
und

Code: Alles auswählen

				//-- mod : user_ip ------------------------------------------------------------
				array('user_ip',			((defined('MOD_USER_IP')) ? 'users.user_regip' : ''),	'phpbb_get_userip'),
				//----------------------------------------------------------
Gruß Helmut :wink: