/* org.manalith.ircbot.plugin.ping/PingPlugin.java ManalithBot - An open source IRC bot based on the PircBot Framework. Copyright (C) 2012 Ki-Beom Kim This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.manalith.ircbot.plugin.ping; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import org.manalith.ircbot.annotation.Option; import org.manalith.ircbot.common.stereotype.BotCommand; import org.manalith.ircbot.plugin.SimplePlugin; import org.springframework.stereotype.Component; @Component public class PingPlugin extends SimplePlugin { @Override public String getName() { return "핑"; } @Override public String getHelp() { return "서버에 ICMP ECHO 요청을 보내고 결과를 표시합니다."; } @BotCommand("핑") public String ping( @Option(name = "대상", help = "핑을 보낼 도메인 혹은 IP 주소") String uri) { InetAddress addr; try { addr = InetAddress.getByName(uri); } catch (UnknownHostException e) { return "[Ping] 올바른 주소가 아닙니다."; } try { return String.format("[Ping] %s(%s) is %s: ", addr.getHostName(), addr.getHostAddress(), addr.isReachable(3000) ? "reachable" : "not reachable"); } catch (IOException e) { return String.format("[Ping] 네트웍 오류가 발생했습니다.(%s)", e.getMessage()); } } }