An IPv4 address is fundamentally a 32-bit number, broken into 4 octets (each 8 bits). For example:
192.168.1.1 → 11000000.10101000.00000001.00000001
↘ ↘ ↘ ↘
192 168 1 1
This binary sequence is naturally represented as an unsigned 32-bit integer:
192 × 2^24 + 168 × 2^16 + 1 × 2^8 + 1 = 3232235777
You can easily convert between the integer and dotted notation:
- Convert dotted IP → integer when storing or indexing.
- Convert integer → dotted IP when displaying to humans.
IPv4 주소는 다음과 같은 이유로 데이터베이스 및 네트워크 시스템에서 종종 32비트 정수로 저장됩니다:
효율성 (성능 및 저장 공간)
- 저장 공간: 32비트 정수는 단지 4바이트만 사용하지만, IP 주소를 문자열로 저장할 경우 (예: '192.168.1.1') 형식에 따라 7에서 15바이트까지 사용됩니다.
- 속도: 정수 비교 및 인덱싱이 문자열 연산보다 빠릅니다. 숫자를 사용할 경우 검색, 정렬, 인덱싱이 훨씬 더 효율적입니다.
- If ip = 3232235777:
- (3232235777 / 16777216) % 256 = 192
- (3232235777 / 65536) % 256 = 168
- (3232235777 / 256) % 256 = 1
- 3232235777 % 256 = 1
SQL Query
SELECT
CAST((ip / 16777216) % 256 AS VARCHAR) + '.' + -- 256^3
CAST((ip / 65536) % 256 AS VARCHAR) + '.' + -- 256^2
CAST((ip / 256) % 256 AS VARCHAR) + '.' + -- 256^1
CAST(ip % 256 AS VARCHAR) AS ip_address
FROM your_table;
로그스태시에서 연동하려고 다음처럼 했습니다.
'제품 > ELK' 카테고리의 다른 글
| webhook 테스트 (0) | 2025.04.27 |
|---|---|
| syslog 분석 중 (0) | 2025.04.02 |
| logstash jdbc input 플러그인 (0) | 2025.03.27 |
| Webhook 커넥터 테스트 (0) | 2025.02.22 |
| 데이터 가져오기 (0) | 2025.02.15 |