package com.server;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
public abstract class License
{
static boolean isLicension = false;
static String LicenseID;
static String LicenseIDfromSite;
public static boolean isFree = false;
public static final String LICENSE_FILE = "./config/License.ini";
public static void freeLicense()
{
isFree = true;
}
public static boolean isLicensed()
{
return isLicension;
}
public static void setLicense(Boolean b)
{
isLicension = b;
}
public static void checkLicense()
{
loadConfig();
connectSiteLicense();
if(LicenseID.equalsIgnoreCase(LicenseIDfromSite))
{
setLicense(true);
}
else
{
setLicense(false);
System.out.println("You are not custmoer.");
System.exit(0);
}
}
public static void loadConfig()
{
try
{
Properties serverSettings = new Properties();
InputStream is = new FileInputStream(new File(LICENSE_FILE));
serverSettings.load(is);
is.close();
LicenseID = serverSettings.getProperty("LicenseID", "null");
}
catch (Exception e)
{
e.printStackTrace();
throw new Error("License file load filed...");
}
}
public static void connectSiteLicense()
{
try
{
URL LicenseSite = new URL(" http://localhost/"+Config.GAMESERVER_HOSTNAME+".lic ");
System.out.println("Trying to license your server...");
BufferedReader br = new BufferedReader(new InputStreamReader(LicenseSite.openStream()));
String line = br.readLine();
LicenseIDfromSite = line;
br.close();
}
catch(MalformedURLException me)
{
System.err.println("License site connection failed");
System.err.println(me);
System.exit(0);
}
catch(IOException ioe)
{
System.err.println("Input error: " + ioe);
}
}
}
{
URL LicenseSite = new URL(" http://localhost/"+Config.GAMESERVER_HOSTNAME+".lic ");
System.out.println("Trying to license your server...");
BufferedReader br = new BufferedReader(new InputStreamReader(LicenseSite.openStream()));
String line = br.readLine();
LicenseIDfromSite = line;
br.close();
}
содержимое файла License.ini скиньте.Разбирая сборку наткнулся сразу же на Лицензию.
Возник вопрос в самом коде:
А именно:Код:package com.server; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.Properties; public abstract class License { static boolean isLicension = false; static String LicenseID; static String LicenseIDfromSite; public static boolean isFree = false; public static final String LICENSE_FILE = "./config/License.ini"; public static void freeLicense() { isFree = true; } public static boolean isLicensed() { return isLicension; } public static void setLicense(Boolean b) { isLicension = b; } public static void checkLicense() { loadConfig(); connectSiteLicense(); if(LicenseID.equalsIgnoreCase(LicenseIDfromSite)) { setLicense(true); } else { setLicense(false); System.out.println("You are not custmoer."); System.exit(0); } } public static void loadConfig() { try { Properties serverSettings = new Properties(); InputStream is = new FileInputStream(new File(LICENSE_FILE)); serverSettings.load(is); is.close(); LicenseID = serverSettings.getProperty("LicenseID", "null"); } catch (Exception e) { e.printStackTrace(); throw new Error("License file load filed..."); } } public static void connectSiteLicense() { try { URL LicenseSite = new URL(" http://localhost/"+Config.GAMESERVER_HOSTNAME+".lic "); System.out.println("Trying to license your server..."); BufferedReader br = new BufferedReader(new InputStreamReader(LicenseSite.openStream())); String line = br.readLine(); LicenseIDfromSite = line; br.close(); } catch(MalformedURLException me) { System.err.println("License site connection failed"); System.err.println(me); System.exit(0); } catch(IOException ioe) { System.err.println("Input error: " + ioe); } } }
Я не профи а только начинающий в этом деле и не блестаю даже базовыми знаниями.Код:{ URL LicenseSite = new URL(" http://localhost/"+Config.GAMESERVER_HOSTNAME+".lic "); System.out.println("Trying to license your server..."); BufferedReader br = new BufferedReader(new InputStreamReader(LicenseSite.openStream())); String line = br.readLine(); LicenseIDfromSite = line; br.close(); }
Вопрос: Как я понял идет запрос на файл license.ini в конфиге и он проходит по localhost'y в поиске .lic? Где же должен быть на своем месте .lic?
Прошу прощения если я не правильно сформулировал вопрос.
Там то и скидывать нечегосодержимое файла License.ini скиньте.
LicenseID = null
и?localhost+config+license.lic
Я знаю что это привязка но в том и прикол что она на null а то есть без какого либо ключа но он не хочет реагировать в связи с непроходимостью .licпо сути это лицензия для сборки да бы не запускалась с левого хоста. тобиш привязка)
Веб путь куда он обращается я же правильно понял?ну вот там же всё понятно)
что да и куда идет)
URL LicenseSite = new URL
Да в ту сторону)Веб путь куда он обращается я же правильно понял?
То есть сам .lic должен на веб сервере и в нем ip клиента и код ключа. Может не в ту сторону мыслю я кинул?Код:URL LicenseSite = new URL
есть ещё такой вариантКак говорится "Тупняк" спал. Уже понял как данный механизм действует, буду немного модернизировать, без книги не обойдется
Большое всем спасибо за помощь!
public class Loader extends ClassLoader {
private static Loader _instance = null;
private static final Logger _log = LoggerFactory.getLogger(GameServer.class);
String load;
public static Loader getInstance() {
if (_instance == null) {
_instance = new Loader();
}
return _instance;
}
private Loader() {
load = getTo("aHR0cDovL3d3dy5tbW8tZGV2ZWxvcC5ydS8=");
BufferedReader reader = null;
try {
URL url = new URL(load + "?" + Base64.encodeBytes(Config.OWNER_NAME.getBytes()));
reader = new BufferedReader(new InputStreamReader(url.openStream()));
} catch (IOException e) {
reader = null;
}
if (reader == null) {
_log.info("License : Unable to connect license server!");
Shutdown.getInstance().schedule(60, Shutdown.RESTART);
return;
}
try {
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("Key=")) {
Config.LICENSE_KEY = Integer.parseInt(line.substring(4).trim(), 16) << 8;
break;
}
}
if (Config.LICENSE_KEY == -1) {
throw new Exception();
}
} catch (Exception e) {
_log.info("Not correct License");
Shutdown.getInstance().schedule(60, Shutdown.RESTART);
}
}
load = getTo("aHR0cDovL3d3dy5tbW8tZGV2ZWxvcC5ydS8=");
Спасибо, позже рассмотрю этоесть ещё такой вариант
Код:public class Loader extends ClassLoader { private static Loader _instance = null; private static final Logger _log = LoggerFactory.getLogger(GameServer.class); String load; public static Loader getInstance() { if (_instance == null) { _instance = new Loader(); } return _instance; } private Loader() { load = getTo("aHR0cDovL3d3dy5tbW8tZGV2ZWxvcC5ydS8="); BufferedReader reader = null; try { URL url = new URL(load + "?" + Base64.encodeBytes(Config.OWNER_NAME.getBytes())); reader = new BufferedReader(new InputStreamReader(url.openStream())); } catch (IOException e) { reader = null; } if (reader == null) { _log.info("License : Unable to connect license server!"); Shutdown.getInstance().schedule(60, Shutdown.RESTART); return; } try { String line; while ((line = reader.readLine()) != null) { if (line.startsWith("Key=")) { Config.LICENSE_KEY = Integer.parseInt(line.substring(4).trim(), 16) << 8; break; } } if (Config.LICENSE_KEY == -1) { throw new Exception(); } } catch (Exception e) { _log.info("Not correct License"); Shutdown.getInstance().schedule(60, Shutdown.RESTART); } }
это и есть ссылка закодирована)Код:load = getTo("aHR0cDovL3d3dy5tbW8tZGV2ZWxvcC5ydS8=");
также на сам сайт мы грузим файлы лицухи и заливаем бд конектим это всё дело, ставим имя клиента ид ип и ключ) и ко всё этому делаем ещё по дате да бы к примеру клиенты у нас с 01.09.2015 по 02.10.2015 02.10 клиентка у него офнится)
это просто пример)
нз)Спасибо
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?