본문 바로가기
제품/ELK

logstash - db query 1

by 헬로웬디 2025. 5. 2.

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
    So the result is: 192.168.1.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