import java.io.*;
import java.net.NetworkInterface;
import java.net.InetAddress;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.util.Enumeration;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class TKIAuth {
private static final String API_KEY = "your-api-key-here";
private static final String API_URL = "http://your-domain.com/api/license/auth";
private static final String PRODUCT = "MyJavaApp";
private static final String VERSION = "1.0.0";
public static class AuthRequest {
public Data data;
public static class Data {
public String product;
public String version;
public String licensekey;
public String ip;
public String hwid;
}
}
public static class AuthResponse {
public String status_overview;
public String status_msg;
public String discord_username;
public String discord_tag;
public String expire_date;
public boolean staff_license;
public String message;
}
private static String getHWID() {
try {
// Get MAC address as HWID
Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces();
while (networks.hasMoreElements()) {
NetworkInterface network = networks.nextElement();
byte[] mac = network.getHardwareAddress();
if (mac != null && mac.length > 0) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
return "JAVA-" + sb.toString();
}
}
} catch (Exception e) {
e.printStackTrace();
}
// Fallback HWID
return "JAVA-FALLBACK-" + System.currentTimeMillis() % 1000000;
}
private static String getLocalIP() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (Exception e) {
return "127.0.0.1";
}
}
public static boolean authenticate(String licenseKey) {
try {
HttpClient client = HttpClient.newHttpClient();
Gson gson = new Gson();
// Prepare request data
AuthRequest.Data data = new AuthRequest.Data();
data.product = PRODUCT;
data.version = VERSION;
data.licensekey = licenseKey;
data.ip = getLocalIP();
data.hwid = getHWID();
AuthRequest request = new AuthRequest();
request.data = data;
String jsonBody = gson.toJson(request);
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(URI.create(API_URL))
.header("Content-Type", "application/json")
.header("Authorization", API_KEY)
.POST(HttpRequest.BodyPublishers.ofString(jsonBody))
.build();
HttpResponse<String> response = client.send(httpRequest,
HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
AuthResponse authResponse = gson.fromJson(response.body(), AuthResponse.class);
if ("success".equals(authResponse.status_overview)) {
System.out.println("â License authenticated!");
System.out.println("User: " + authResponse.discord_username);
System.out.println("Expires: " + authResponse.expire_date);
System.out.println("Staff License: " + authResponse.staff_license);
return true;
} else {
System.out.println("â Authentication failed: " + authResponse.message);
}
} else {
System.out.println("â HTTP Error: " + response.statusCode());
}
} catch (Exception e) {
System.out.println("â Error: " + e.getMessage());
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter license key: ");
String licenseKey = reader.readLine();
if (authenticate(licenseKey)) {
System.out.println("Starting application...");
// Your application logic here
} else {
System.out.println("Authentication failed!");
System.exit(1);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}