|
Java example source code file (HostsFileParser.java)
The HostsFileParser.java Java example source code/* * Copyright 2015 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.resolver; import io.netty.util.NetUtil; import io.netty.util.internal.PlatformDependent; import io.netty.util.internal.logging.InternalLogger; import io.netty.util.internal.logging.InternalLoggerFactory; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.net.InetAddress; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; import static io.netty.util.internal.ObjectUtil.*; /** * A parser for hosts files. */ public final class HostsFileParser { private static final String WINDOWS_DEFAULT_SYSTEM_ROOT = "C:\\Windows"; private static final String WINDOWS_HOSTS_FILE_RELATIVE_PATH = "\\system32\\drivers\\etc\\hosts"; private static final String X_PLATFORMS_HOSTS_FILE_PATH = "/etc/hosts"; private static final Pattern WHITESPACES = Pattern.compile("[ \t]+"); private static final InternalLogger logger = InternalLoggerFactory.getInstance(HostsFileParser.class); private static File locateHostsFile() { File hostsFile; if (PlatformDependent.isWindows()) { hostsFile = new File(System.getenv("SystemRoot") + WINDOWS_HOSTS_FILE_RELATIVE_PATH); if (!hostsFile.exists()) { hostsFile = new File(WINDOWS_DEFAULT_SYSTEM_ROOT + WINDOWS_HOSTS_FILE_RELATIVE_PATH); } } else { hostsFile = new File(X_PLATFORMS_HOSTS_FILE_PATH); } return hostsFile; } /** * Parse hosts file at standard OS location. * * @return a map of hostname or alias to {@link InetAddress} */ public static Map<String, InetAddress> parseSilently() { File hostsFile = locateHostsFile(); try { return parse(hostsFile); } catch (IOException e) { logger.warn("Failed to load and parse hosts file at " + hostsFile.getPath(), e); return Collections.emptyMap(); } } /** * Parse hosts file at standard OS location. * * @return a map of hostname or alias to {@link InetAddress} * @throws IOException file could not be read */ public static Map<String, InetAddress> parse() throws IOException { return parse(locateHostsFile()); } /** * Parse a hosts file. * * @param file the file to be parsed * @return a map of hostname or alias to {@link InetAddress} * @throws IOException file could not be read */ public static Map<String, InetAddress> parse(File file) throws IOException { checkNotNull(file, "file"); if (file.exists() && file.isFile()) { return parse(new BufferedReader(new FileReader(file))); } else { return Collections.emptyMap(); } } /** * Parse a reader of hosts file format. * * @param reader the file to be parsed * @return a map of hostname or alias to {@link InetAddress} * @throws IOException file could not be read */ public static Map<String, InetAddress> parse(Reader reader) throws IOException { checkNotNull(reader, "reader"); BufferedReader buff = new BufferedReader(reader); try { Map<String, InetAddress> entries = new HashMap Other Java examples (source code examples)Here is a short list of links related to this Java HostsFileParser.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.