Как получить IP последнего (текущего) входа игрока?

Материал из Perfect World Develop Wiki
Перейти к: навигация, поиск

Данная информация есть в структуре PlayerConsumeInfo, которая содержится в ответе на пакет DBGetConsumeInfosArg.

<?
include("packet_class.php");
$DBGetConsumeInfos = new WritePacket();
$DBGetConsumeInfos -> WriteUInt32(-1); // always
$DBGetConsumeInfos -> WriteCUInt32(1); // count of array
$DBGetConsumeInfos -> WriteUInt32(1024); // roleid
$DBGetConsumeInfos -> Pack(0x180);
 
if (!$DBGetConsumeInfos -> Send("localhost", 29400))
	return -1;
 
$DBGetConsumeInfos_Re = new ReadPacket($DBGetConsumeInfos);
$DBGetConsumeInfos_Re -> ReadPacketInfo();
$DBGetConsumeInfos_Re -> ReadUInt32(); // always
$DBGetConsumeInfos_Re -> ReadUInt32(); // retcode
$DBGetConsumeInfos_Re -> ReadCUInt32(); // count of array
$DBGetConsumeInfos_Re -> ReadUInt32(); // roleid
$DBGetConsumeInfos_Re -> ReadUInt32(); // level
$loginip = $DBGetConsumeInfos_Re -> ReadUInt32();
$ip[0] = $loginip & 0xFF;
$ip[1] = ($loginip >> 8) & 0xFF;
$ip[2] = ($loginip >> 16) & 0xFF;
$ip[3] = ($loginip >> 24) & 0xFF;
echo "{$ip[0]}.{$ip[1]}.{$ip[2]}.{$ip[3]}";
?>