From 2cfea020575ccb1c3f681a5cb73971356bd856f1 Mon Sep 17 00:00:00 2001 From: Nezuko-Wen <409053122@qq.com> Date: Mon, 13 Jul 2020 15:58:48 +0800 Subject: [PATCH] =?UTF-8?q?ip=E5=9C=B0=E5=9D=80=E7=82=B9=E5=88=86=E5=8D=81?= =?UTF-8?q?=E8=BF=9B=E5=88=B6=E8=BD=AC=E9=95=BF=E6=95=B4=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/brainstorming/IPDecodeAndEncode.java | 41 ++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/brainstorming/IPDecodeAndEncode.java diff --git a/src/brainstorming/IPDecodeAndEncode.java b/src/brainstorming/IPDecodeAndEncode.java new file mode 100644 index 0000000..b072391 --- /dev/null +++ b/src/brainstorming/IPDecodeAndEncode.java @@ -0,0 +1,41 @@ +package brainstorming; + +import java.util.stream.Stream; + +public class IPDecodeAndEncode { + private long l; + public static void main(String[] args) { + IPDecodeAndEncode testDmeo = new IPDecodeAndEncode(); + testDmeo.decode("192.168.2.1"); + System.out.println(testDmeo.l); + System.out.println(testDmeo.encode(3232236033L)); + } + + + public IPDecodeAndEncode() { + this.l = 0L; + } + + public void decode(String ipStrs){ + this.l = 0L; + Stream.of(ipStrs.split("\\.")).forEach(this::ipUp); + } + + private final void ipUp(final String ipStr){ + long sum = Long.parseLong(ipStr); + l = (l << 8) + Long.parseLong(ipStr); + } + + public String encode(long ipNo){ + StringBuffer sb = new StringBuffer(); + while (ipNo != 0){ + if (ipNo >>> 8 == 0){ + sb.insert(0, ipNo & 255); + }else { + sb.insert(0, "." + (ipNo & 255)); + } + ipNo = ipNo >>> 8; + } + return sb.toString(); + } +}