InetAddress ํด๋์ค
์๋ฐ์์๋ IP์ฃผ์๋ฅผ InetAddress
๊ฐ์ฒด๋ก ํํํ๋ค. InetAddress๋ฅผ ํตํด์ ๋ก์ปฌ ์๋ฒ(์ปดํจํฐ)์ IP ์ฃผ์๋ฟ๋ง ์๋๋ผ, ๋๋ฉ์ธ์ IP ์ฃผ์๋ฅผ ์ป์ ์ ์๋ค. ๋ก์ปฌ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ป์ผ๋ ค๋ฉด ์๋์ ๊ฐ์ด InetAddress
๊ฐ์ฒด์ getLocalHost()
๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๋๋ค. ๋์ UnknownHostException
์ ๋ํ ์์ธ ์ฒ๋ฆฌ๋ ํด์ฃผ์ด์ผ ํ๋ค.
InetAddress
์ ์์ฑ์๋ ์๋์ ๊ฐ์ด ํ ๊ฐ๋ฐ์ ์๊ณ ์ด๋ง์ ๋ default ์ ๊ทผ ์ ์ด์๋ก ๋์ด ์์ด์ ๋ณ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์๋ ์๋ค. ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ๋ชปํ๋ ๋์ ์ getLocalHost()
์ ๊ฐ์ด IP ์ฃผ์๋ฅผ ์ป์ ์ ์๋ ๋ฉ์๋๋ค์ด ๋ช ๊ฐ์ง ์๋ค.
์ฃผ์ ๋ฉ์๋
๋ฉ์๋ | ๋ด์ฉ |
getLocalHost() | ๋ก์ปฌ ์๋ฒ์ IP๋ฅผ ๋ฆฌํด |
getByName(String host) | ๋๋ฉ์ธ ์ฃผ์ host์ IP๋ฅผ ๋ฆฌํด (ex) InetAddress.getByName("www.google.com") |
getAllByName(String host) | ๋๋ฉ์ธ ์ฃผ์ host์ IP๋ค์ ๋ฆฌํด. ์๋ฒ๋ก ์ฐ๊ฒฐ์ด ๋ชฐ๋ฆฌ๋ ๊ฒ์ ๋๋นํ์ฌ ์ฌ๋ฌ IP๋ฅผ ํ๋์ ๋๋ฉ์ธ์ ๋ฑ๋กํด์ ์ด์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ด ๋์๋ ์์ ๋ฉ์๋ ๋์ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ IP ์ฃผ์๋ฅผ ์ป์ ์ ์๋ค. (ex) InetAddress.getAllByName("www.naver.com") |
๊ธฐํ
InetAddress
๊ฐ ์ด๋ป๊ฒ ๋ก์ปฌ ํธ์คํธ์ IP๋ฅผ ๊ฐ์ ธ์ฌ ์ง ๊ถ๊ธํ์ฌ ์ฝ๋๋ฅผ ํ์ธํด๋ดค๋ค. ์์ธํ ์๊ธฐ ์ํด์๋ SecurityManager
, CachedLocalHost
๋ผ๋ ํด๋์ค์ ๋ํ ์ดํด๊ฐ ํ์ํด ๋ณด์ด๊ธฐ๋ ํ๋ฐ, ์๋ตํ๊ณ ์ค์ ๋ก ์ฃผ์๋ฅผ ๊ฐ์ ธ์ค๋ ๋ถ๋ถ์ ์๋์ ๊ฐ๋ค.
impl
์ด๋ผ๋ ๋ณ์์ getLocalHostName()
๋ฉ์๋๋ฅผ ํตํด ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๋ค์ InetAddress
์ ์ฝ๋๋ฅผ ํ์ธํด๋ณด๋ฉด static ๋ณ์๋ก InetAddressImpl
์ด ์ ์ธ๋์ด ์๊ณ , ํฉํ ๋ฆฌ์ create()
๋ฉ์๋๋ฅผ ํตํด ๊ตฌํ์ฒด๋ฅผ ๋ฐ์์จ๋ค. ์ด ํฉํ ๋ฆฌ ํด๋์ค๋ InetAddress
์ ๋ด๋ถ์ ๊ตฌํ๋์ด ์๋๋ฐ, native ๋ฉ์๋ isIPv6Supported()
๋ก IPv6๊ฐ ์ง์๋๋์ง๋ฅผ ํ์ธํ ์ดํ์ ๊ตฌํ์ฒด๋ฅผ ์ ํํด ์จ๋ค.
๋ ๊ฐ์ ๊ตฌํ์ฒด ์ค ์๋ฌด๊ฑฐ๋ ๋ค์ด๊ฐ์ getLocalHostName()
๋ฉ์๋๋ฅผ ์ดํด๋ณด๋ฉด ์ด ๋ฉ์๋๋ native ๋ฉ์๋์์ ํ์ธํ ์ ์๋ค. ๊ฒฐ๊ตญ ๋ก์ปฌ ์๋ฒ์ IP ์ฃผ์๋ ์ดํ๋ฆฌ์ผ์ด์
๋จ์ด ์๋๋ผ OS ํน์ ํ๋์จ์ด,,,,(์ ํํ ์ ๋ชจ๋ฆ)๋จ์์ ์์ ๋ผ ์ ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ native๋ฅผ ํตํด ๊ตฌํํด๋จ์์ ์ ์ ์๋ค.
์ฐธ๊ณ
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ดํํฐ๋ธ ์๋ฐ] ์์ดํ 4. ์ธ์คํด์คํ๋ฅผ ๋ง์ผ๋ ค๊ฑฐ๋ private ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ผ (0) | 2022.03.27 |
---|---|
[์ฑํ ํ๋ก๊ทธ๋จ] ํด๋์ค ServerSocket๊ณผ Socket + TCP ์์ผ (0) | 2021.08.15 |