Jump to content




Adicionado parâmetro "player_id" para rastreio do voto


Recommended Posts

  • L2JBr ADM

O lineage2 utiliza uma conexão TCP IPv4 persistente para funcionar, quanto aos sites da l2jbrasil funcionam com tecnologa HTTPS e respondem preferencialmente ao IPv6.

Para manter a compatibilidade entre o IPv4 e o IPv6 provedores de internet utilizam Túneis V4-V6 para operar na internet  IPv6 , tornando impossível para o servidor l2jbrasil enxergar o mesmo IP que o servidor de Lineage2 e então fazer a comparação se a pessoa votou ou não.

 

Para solucionar e isso implementamos um campo extra na URL de votação chamado player_id

O player_id é uma string de até 32 caracteres e que servirá como identificador do voto do jogador.

Recomendo utilizar MD5 para gerar o id, MD5 vai gerar um token de 32 exatos caracteres com uma possibilidade de gerar o mesmo token para um mesmo jogador praticamente nula.

Algumas sugestões para composição do token:

Com o player_id vc poderá checar através dele ao invés do IP, a url de votação deverá ser entregue para o usuário no seguinte formato:
 

Citar

Aonde o  parametro u é o username no rank e player_id o id do jogador.

http://top.l2jbrasil.com/index.php?a=in&u=$_USER_NAME_&player_id=$_PLAYER_ID_

 

Na consulta ao vote-system o parâmetro IP poderá ser substituído pelo parâmetro 

GET https://top.l2jbrasil.com/votesystem/?username=test&player_id=4d4d0a75d0f0abb28d5de229d721462d&type=json

exemplo de resposta em json:

 

{
  "vote": [
    {
      "id": "bfc5f29ce3bf163d0c27ca8d9d17ec49",
      "player_id": "4d4d0a75d0f0abb28d5de229d721462d",
      "site_id": "test",
      "ip": "172.68.46.131",
      "date": "2022-07-18 11:42:39",
      "status": "1",
      "server_time": "2022-07-18 12:17:58",
      "hours_since_vote": "0.5886"
    },
    {
      "id": "3bc412ad4910c19f6710515540190792",
      "player_id": "4d4d0a75d0f0abb28d5de229d721462d",
      "site_id": "test",
      "ip": "191.6.139.132",
      "date": "2022-07-18 11:42:39",
      "status": "1",
      "server_time": "2022-07-18 12:17:58",
      "hours_since_vote": "0.5886"
    }
  ]
}

 

Exemplo de resposta em XML:

GET https://top.l2jbrasil.com/votesystem/?username=test&player_id=4d4d0a75d0f0abb28d5de229d721462d
<?xml version="1.0" encoding="ISO-8859-1"?> 
<votes>
  <vote>
    <id>bfc5f29ce3bf163d0c27ca8d9d17ec49</id>
    <player_id>4d4d0a75d0f0abb28d5de229d721462d</player_id>
    <site_id>test</site_id>
    <ip>172.68.46.131</ip>
    <date>2022-07-18 11:42:39</date>
    <status>1</status>
    <server_time>2022-07-18 12:17:24</server_time>
    <hours_since_vote>0.5792</hours_since_vote>
  </vote>
  <vote>
    <id>3bc412ad4910c19f6710515540190792</id>
    <player_id>4d4d0a75d0f0abb28d5de229d721462d</player_id>
    <site_id>test</site_id>
    <ip>191.6.139.132</ip>
    <date>2022-07-18 11:42:39</date>
    <status>1</status>
    <server_time>2022-07-18 12:17:24</server_time>
    <hours_since_vote>0.5792</hours_since_vote>
  </vote>
</votes>

 

Atenção, essa modalidade poderá trazer mais um resultado por player_id pois todos os ips de conexão disponíveis são gravados, por isso recomendo sempre combinar o username com outro fator (que não seja o tempo como timestamps)  para validar o voto.

 

Link para exemplos de código: https://documenter.getpostman.com/view/22116178/UzQypiGK#intro

  • Like 2
  • I love it 1

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link to comment
Share on other sites

  • Grundor changed the title to Adicionado parâmetro "player_id" para rastreio do voto
  • Grundor featured and pinned this topic

  • L2JBr ADM
14 horas atrás, Kelvin disse:

Excelente conteúdo! Ideal pra quem quer ter um vote 100% com a tecnologia mastigadinha ai.

 

 

A ideia é facilitar a vida do Admin que não quer se preocupar com o ip que o usuário está usando para votar, por exemplo, o jogador poderia votar pelo celular enquanto joga normalmente , apenas utilizando o player_id.

Para mais informações de como acessar a API pode acessara documentação: 


https://documenter.getpostman.com/view/22116178/UzQypiGK#intro

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link to comment
Share on other sites

  • Join now

    Be part of the largest and oldest communities about Lineage2 in Latin America.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.