Como pegar o IP do computador pelo 3DGB
Ir à página 1, 2  Próximo
 
   3D Game Builder - Índice » Suporte
Como pegar o IP do computador pelo 3DGB
Autor Mensagem
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Como pegar o IP do computador pelo 3DGB
Então, preciso que o cliente envie seu ip pro servidor, a parte de enviar eu já sei fazer mas não to conseguindo usar o comando de pegar o IP.

Pesquisei lá e achei esse comando aqui:
Citação:
IPAddress


Mas ta dizendo que não existe!
Tem outro jeito?



_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Dom Abr 12, 2015 12:18 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

como-usa-a-funcao-ipaddress-t2309.html
Seg Abr 13, 2015 11:48 am Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Então, no meu caso, eu preciso que ele pegue o IP de internet. Se eu usar o que diz no post ele vai pegar o IP de internet ou o IP local?


Porque o comando ipconfig retorna o IP de rede:




Acho que esse não serve pra enviar mensagem do servidor pro cliente.

_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Qui Abr 16, 2015 12:36 am Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

IP Local.

Mas uma vez que o cliente se conecta no servidor o componente servidor tem como obter o IP do cliente.
Dá uma olhada nas funções do componente servidor.
Qui Abr 16, 2015 1:26 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Outra forma é compilar esse código de C++
http://stackoverflow.com/questions/5037279/external-ip-address

Então pegar o ip que ele vai mostrar.


Qui Abr 16, 2015 8:50 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Então, eu não achei no componente servidor não.

Lá tem evento para quando o Cliente conecta, outro pra quando estiverem conectados e outro pra quando desconecta.

_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Sex Abr 17, 2015 12:27 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Você fala usar o comando compilado em c++ separado do 3D GB?

_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Sex Abr 17, 2015 12:51 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Sim, da mesma forma que se usou o ipconfig.

Eu compilei o programa, segue o link para baixar:
http://wsantos.eti.br/3d_game_builder/ipexterno.rar

O que ele faz é acessar o site: http://checkip.dyndns.org
Então vai retornar algo como:
Código:
<html><head><title>Current IP Check</title></head><body>Current IP Address: 201.6.138.6</body></html>


Segue o código em C++ caso queira adaptar:
Código:
#include "stdafx.h"
#include <windows.h>
#include <wininet.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
    HINTERNET hInternet, hFile;
    DWORD rSize;
    char buffer[1024];

    hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    if(!hInternet){
        std::cout << "Falha ao retornar ip!" << "\n";
        return false;
    }

    //hFile = InternetOpenUrl(hInternet, L"http://automation.whatismyip.com/n09230945.asp", NULL, 0, INTERNET_FLAG_RELOAD, 0);
    //hFile = InternetOpenUrl(hInternet, L"http://www.whatismyip.com", NULL, 0, INTERNET_FLAG_RELOAD, 0);
    hFile = InternetOpenUrl(hInternet, L"http://checkip.dyndns.org", NULL, 0, INTERNET_FLAG_RELOAD, 0);
    if(!hFile) {
      InternetCloseHandle(hInternet);
        std::cout << "Falha ao retornar ip!" << "\n";
      return false;
   }
   
    InternetReadFile(hFile, &buffer, sizeof(buffer), &rSize);
    buffer[rSize] = '\0';
   
    std::cout << buffer << "\n";

    InternetCloseHandle(hFile);
    InternetCloseHandle(hInternet);

    return 0;
}


Nota antes de compilar (Microsoft Visual Studio Ultimate 2012)

Vá em Properties do projeto.
A caixa de diálogo Property Pages irá abrir.
Na árvore a esquerda acesse
Configuration Properties > Linker > Input
Em Additional Dependencies adicione: wininet.lib


Sex Abr 17, 2015 5:46 pm Exibir perfil de usuários
   3D Game Builder - Índice » Suporte Ir à página 1, 2  Próximo
Página 1 de 2