我基本上要創建一個反黑客系統,使用Unity API檢測用戶的IP地址。有什么簡單的方法來處理嗎?
我還需要檢查玩家是否在使用VPN連接。所有這些都必須在Unity和C#中完成。希望得到幫助。謝謝你
uj5u.com熱心網友回復:
從你的應用程式向你的服務器發送一個獨特的請求,看看你從哪個IP看到服務器上的請求。
對于第二個問題:你只能將IP與已知的代理服務器串列進行比較。
uj5u.com熱心網友回復:
你可以用下面的例子來展開,并調整它。并非所有的VPN服務都可能在其界面上命名為 "vpn",但大多數會。你可以創建一個Hyper-V或虛擬機(或租用一個VPS服務器),并安裝一些VPN應用程式,看看他們如何命名他們的介面。
為了獲得公共IP,有一些免費的網路API,你可以使用WWWForm或UnityWebRequest從unity呼叫,它們會以JSON格式回傳公共IP。一個例子是https://www.ipify.org/或https://www.bigdatacloud.com/client-info-apis/public-ip-address-api
public IEnumerator ScanNetworkInterfaces() /span>
{
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)
{
//我的地址。
if (ni.Description.ToLower().Contains("vpn"/span>)
{
foundVPN = true。
}
}
yield return null。
}
}
}
yield return null;
}
if (foundVPN)
MainMenuPanel.Instance.ShowWarning("可能檢測到一個VPN - 你可能需要禁用它,否則游戲將立即斷開連接!")。
else
MainMenuPanel.Instance.HideWarning()。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/332964.html
標籤:
