diff options
| author | Pugmatt <pugmatt@gmail.com> | 2020-03-25 19:53:30 -0400 |
|---|---|---|
| committer | Pugmatt <pugmatt@gmail.com> | 2020-03-25 19:53:30 -0400 |
| commit | 7785d6744dca6ea4009e5bf796c383828db024da (patch) | |
| tree | 5a2f8cf5a8cbd3dc2c6b91aa2355e97ed8346ec5 /serverlist-server/src | |
| parent | 826b7f11debd7949cef9ef7c292a071b7b474df0 (diff) | |
| download | BedrockConnect-7785d6744dca6ea4009e5bf796c383828db024da.tar.gz BedrockConnect-7785d6744dca6ea4009e5bf796c383828db024da.tar.bz2 BedrockConnect-7785d6744dca6ea4009e5bf796c383828db024da.zip | |
Fix for domain regex
Diffstat (limited to 'serverlist-server/src')
| -rw-r--r-- | serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java | 50 | ||||
| -rw-r--r-- | serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java | 4 |
2 files changed, 50 insertions, 4 deletions
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java index 2c00ac4..b58f1d9 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java @@ -3,15 +3,17 @@ package main.com.pyratron.pugmatt.bedrockconnect; import main.com.pyratron.pugmatt.bedrockconnect.sql.Data; import main.com.pyratron.pugmatt.bedrockconnect.sql.MySQL; import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; import java.io.*; +import java.net.*; import java.nio.file.Files; import java.nio.file.Paths; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Timer; -import java.util.TimerTask; +import java.util.*; public class BedrockConnect { @@ -54,6 +56,50 @@ public class BedrockConnect { port = getArgValue(str, "port"); if(str.startsWith("nodb=")) noDB = true; + if(str.startsWith("generatedns=")) { + String ip; + try { + Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); + + System.out.println("Local IPv4 IPs:"); + while (interfaces.hasMoreElements()) { + NetworkInterface iface = interfaces.nextElement(); + + if (iface.isLoopback() || !iface.isUp() || iface.isVirtual() || iface.isPointToPoint()) + continue; + + Enumeration<InetAddress> addresses = iface.getInetAddresses(); + while(addresses.hasMoreElements()) { + InetAddress addr = addresses.nextElement(); + + if(!(addr instanceof Inet4Address)) continue; + + ip = addr.getHostAddress(); + System.out.println(iface.getDisplayName() + ": " + ip); + } + } + + Scanner reader = new Scanner(System.in); // Reading from System.in + System.out.print("\nWhich IP should be used for the DNS records: "); + String selectedIP = reader.next().replaceAll("\\s+",""); + reader.close(); + + BufferedWriter br = new BufferedWriter(new FileWriter(new File("bc_dns.conf"))); + br.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + + "<DNSMasqConfig xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" + + " <DNSMasqEntries>\n" + + " <DNSMasqHost name=\"hivebedrock.network\" a=\"" + selectedIP + "\" />\n" + + " <DNSMasqHost name=\"mco.mineplex.com\" a=\"" + selectedIP + "\" />\n" + + " <DNSMasqHost name=\"play.inpvp.net\" a=\"" + selectedIP + "\" />\n" + + " <DNSMasqHost name=\"mco.lbsg.net\" a=\"" + selectedIP + "\" />\n" + + " <DNSMasqHost name=\"mco.cubecraft.net\" a=\"" + selectedIP + "\" />\n" + + " </DNSMasqEntries>\n" + + "</DNSMasqConfig>"); + br.close(); + } catch (SocketException e) { + throw new RuntimeException(e); + } + } } if(!noDB) diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java index f7362ef..536e802 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java @@ -1000,11 +1000,11 @@ public class PacketHandler implements BedrockPacketHandler { data.set(0, data.get(0).replaceAll("\\s","")); data.set(1, data.get(1).replaceAll("\\s","")); - if(data.get(0).length() >= 45) + if(data.get(0).length() >= 253) session.sendPacketImmediately(UIForms.createError("Address is too large. (Must be less than 45)")); else if(data.get(1).length() >= 10) session.sendPacketImmediately(UIForms.createError("Port is too large. (Must be less than 10)")); - else if (!data.get(0).matches("[a-zA-Z.0-9]+")) + else if (!data.get(0).matches("^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$")) session.sendPacketImmediately(UIForms.createError("Enter a valid address. (E.g. play.example.net, 172.16.254.1)")); else if (!data.get(1).matches("[0-9]+")) session.sendPacketImmediately(UIForms.createError("Enter a valid port that contains only numbers")); |
