import java.net.InetAddress;

public class PenjagaSsrf {
    // Tolak alamat internal: kandidat apapun yang menunjuk ke dalam jaringan sendiri
    static String periksaAlamat(InetAddress alamat) {
        if (alamat.isLoopbackAddress() || alamat.isAnyLocalAddress()
                || alamat.isSiteLocalAddress() || alamat.isLinkLocalAddress()) {
            return "DITOLAK (alamat internal)";
        }
        return "DIIZINKAN";
    }

    public static void main(String[] args) throws Exception {
        // Alamat numerik murni: tidak ada pencarian DNS sama sekali
        String[] kandidat = {
                "127.0.0.1", "10.0.0.5", "192.168.1.10",
                "169.254.1.1", "0.0.0.0", "93.184.216.34"
        };
        for (String teks : kandidat) {
            InetAddress alamat = InetAddress.getByName(teks);
            System.out.printf("%-15s -> %s%n", teks, periksaAlamat(alamat));
        }
    }
}
