cómo detectar la dirección IP del usuario en unity C#? [closed]
– UnityAssets3Free
buenas , por aqui jorge y esta vez os traigo
nueva pregunta
Cerrado. Esta pregunta no cumple con las pautas de Stack Overflow. Actualmente no está aceptando respuestas.
Esta pregunta no parece ser sobre la programación dentro del alcance definido en el centro de ayuda.
Cerrado hace 11 meses.
mejorar esta pregunta
Básicamente, tengo que crear un sistema anti-hackeo que detecte la dirección IP del usuario usando la API de Unity. ¿Hay alguna manera fácil de lidiar con esto?
También necesito verificar si el jugador está usando una conexión VPN o no. Todo esto debe hacerse en Unity y C#. La ayuda será apreciada. Gracias
2 respuestas 2
Puede usar el siguiente ejemplo para expandirlo y ajustarlo. No todos los servicios VPN pueden nombrar su interfaz «vpn», pero la mayoría lo hará. Puede crear una máquina virtual o Hyper-V (o alquilar un servidor VPS) e instalar algunas de las aplicaciones VPN para ver cómo llaman a sus interfaces.
Para obtener la IP pública, hay algunas API web gratuitas desde las que puede llamar unity usando WWWForm o UnityWebRequest y devuelven la IP pública en JSON. Un ejemplo seria en https://www.ipify.org/ o https://www.bigdatacloud.com/client-info-apis/public-ip-address-api
public IEnumerator ScanNetworkInterfaces()
{
while(Application.isPlaying && SM.CurrentState == GameManagerState.Intro)
{
bool foundVPN = false;
yield return new WaitForSeconds(2);
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
if (ni.OperationalStatus == OperationalStatus.Up)
{
if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
if (ip != null && ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
// My addresses
if (ni.Description.ToLower().Contains("vpn"))
foundVPN = true;
yield return null;
}
yield return null;
}
if (foundVPN)
MainMenuPanel.Instance.ShowWarning("Possibly detected a VPN - you may need to disable it or game will disconnect immediately!");
else
MainMenuPanel.Instance.HideWarning();
}
}
Envíe una solicitud única desde su aplicación a su servidor y vea de qué IP ve la solicitud en el servidor.
Para el segundo problema: solo puedes comparar la IP con una lista de proxies conocidos.
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
eso es todo,hasta la proxima