티스토리 뷰
개발을 하다 보면 IP 처리를 위한 여러 가지 작업을 할 때가 있습니다. 그럴 경우 사용 가능한
CIDR 주소체계에 대한 계산을 해주는 유틸 클래스가 있어 소개해 보려 합니다.
해당 CIDR의 시작 IP, 끝IP, Broadcast IP, Network IP,IP 포함 여부등을 확인할 수 있습니다.
SubnetUtils
SubnetTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package subnet; import org.apache.commons.net.util.SubnetUtils; public class SubnetTest { public static void main(String[] args) { SubnetUtils subnetUtils = new SubnetUtils("120.131.5.130/26"); subnetUtils.setInclusiveHostCount(true); //network,broadcast ip 포함, false:불포함 System.out.println("넷마스크:" + subnetUtils.getInfo().getNetmask()); System.out.println("네트워크 IP:" + subnetUtils.getInfo().getNetworkAddress()); System.out.println("브로드캐스트 IP:" + subnetUtils.getInfo().getBroadcastAddress()); System.out.println("시작 IP:" + subnetUtils.getInfo().getLowAddress()); System.out.println("끝 IP:" + subnetUtils.getInfo().getHighAddress()); System.out.println("120.131.5.130 해당 대역의 포함여부: " + subnetUtils.getInfo().isInRange("120.131.5.130")); System.out.println("120.131.5.234 해당 대역의 포함여부: " + subnetUtils.getInfo().isInRange("120.131.5.234")); String[] allAddresses = subnetUtils.getInfo().getAllAddresses(); System.out.println("===사용가능한 IP 리스트 시작==="); for (String allAddress : allAddresses) { System.out.println(allAddress); } } } | cs |
subnetUtils.setInclusiveHostCount(true) 라인의 true, false 옵션에 따라 network, boardcast IP 포함 여부를 결정할 수 있습니다.
OUTPUT
넷마스크:255.255.255.192
네트워크 IP:120.131.5.128
브로드캐스트 IP:120.131.5.191
시작 IP:120.131.5.128
끝 IP:120.131.5.191
120.131.5.130 해당 대역의 포함여부: true
120.131.5.234 해당 대역의 포함여부: false
===사용가능한 IP 리스트 시작===
120.131.5.128
120.131.5.129
120.131.5.130
120.131.5.131
120.131.5.132
120.131.5.133
120.131.5.134
120.131.5.135
120.131.5.136
120.131.5.137
120.131.5.138
120.131.5.139
120.131.5.140
120.131.5.141
120.131.5.142
120.131.5.143
120.131.5.144
120.131.5.145
120.131.5.146
120.131.5.147
120.131.5.148
120.131.5.149
120.131.5.150
120.131.5.151
120.131.5.152
120.131.5.153
120.131.5.154
120.131.5.155
120.131.5.156
120.131.5.157
120.131.5.158
120.131.5.159
120.131.5.160
120.131.5.161
120.131.5.162
120.131.5.163
120.131.5.164
120.131.5.165
120.131.5.166
120.131.5.167
120.131.5.168
120.131.5.169
120.131.5.170
120.131.5.171
120.131.5.172
120.131.5.173
120.131.5.174
120.131.5.175
120.131.5.176
120.131.5.177
120.131.5.178
120.131.5.179
120.131.5.180
120.131.5.181
120.131.5.182
120.131.5.183
120.131.5.184
120.131.5.185
120.131.5.186
120.131.5.187
120.131.5.188
120.131.5.189
120.131.5.190
120.131.5.191
'Web Development' 카테고리의 다른 글
숫자 0 ~ 9 까지 한번씩만 쓰인 숫자열 찾기 (0) | 2018.03.28 |
---|---|
[Tool] 윈도우 설치형 무료 ERD Tool (0) | 2018.03.21 |
[Spring] Constructor Dependency Injection (생성자 의존성 주입) (0) | 2018.03.05 |
[DB] MySQL 에서 ROWNUM , 시퀀스 사용하기 (0) | 2018.01.30 |
[스프링 부트] 프로퍼티 파일에 필드 암호화 (Jasypt) (0) | 2018.01.25 |
- Total
- Today
- Yesterday