Recent Posts
Recent Comments
Link
11-29 16:02
동글동글 라이프
perl을 사용한 자신의 IP 주소 얻기 본문
작업을 하다보면 자신의 IP를 참고 해야 할 부분이 생긴다.
perl을 사용하여 자신의 공인IP 또는 사설IP를 얻는 방법은 다양한데
이를 정리해 보았다.
- 사설 IP
perl을 사용하여 사설 IP를 얻기 위해서는 일반적으로 두가지 방법이 있다.
첫번째로 ifconfig 명령(리눅스 운영체제)의 결과값을 정규표현식으로 파싱하는 방법이다. (Luz님 코드)
원본코드 : http://perlkr.codepad.org/hkhQi5Zi
JEEN님께 솔깃한 정보를 얻었는데...
그럴듯한 그림 하나정도는 있어야 올블로그에서 간지나게 출력 준다고 하여... 낚아봤...
간만에 backtrack3... 흠흠...( 전체적으로 vi 색이 이쁜 듯)
이와같이 리눅스는 인터페이스를 옵션으로 설정할 수 있지만
윈도우는 ipconfig 명령으로 인터페이스를 설정할 수 없으므로
네트워크 인터페이스가 여러개라면 파싱하기가 까다로울 것이다.
ipconfig 명령 이외에 netsh interface dump 명령으로 사설 ip 주소를 파싱해도 좋다.
두번째 방법으로 Perl 모듈을 사용하는 방법이다.
Net::Address::IP::Local
A class for discovering the local system's IP addressNet-Address-IP-Local-0.1.2 - 14 Jan 2009 - Julian Mehnle
이 모듈을 사용하면 손쉽게 사설IP를 얻을 수 있다.
1
2
|
use Net::Address::IP::Local;
my $address = Net::Address::IP::Local->public;
|
- 공인 IP
NAT환경이고 public으로 나가는 IP의 주소를 알고 싶을 때 가장 좋은 방법은
REMOTE_ADDRESS를 찍어주는 사이트에서 결과를 파싱하는 방법이 가장 좋다.
리눅스 환경에서는 lynx 명령을 사용하여 사이트를 덤프한뒤 정규식으로 처리한다. (뽀빠이님 코드)
|
윈도우에는 lynx명령이 존재하지 않으므로,
LWP::Simple 모듈을 사용하여 처리한다.
1
2
|
use LWP::Simple;
print get('http://www.whatismyip.org/');
|
위의 사이트는 IP를 정규식으로 추출할 필요가 없어 사이트라 매우 편리했다.
- REMOTE_ADDRESS 정리
Simple한 Site (파싱이 필요없음)
볼꺼리가 있는 Site
IP를 통해 접속 위치를 알려주는 Site (대략적인 위치만 나오는 듯)
Remote port 및 Browser를 알려주는 Site
http://ipchicken.com/
... 패킷을 덤프하여 헤더부분을 까는 방법은 패스 -_-;
- 참고 Site
http://keir.net/ip2.html (자신의 IP를 알려주는 프로그램)
http://search.cpan.org/~jmehnle/Net-Address-IP-Local-0.1.2/lib/Net/Address/IP/Local.pm (CPAN 모듈)
'개발자 이야기 > Perl' 카테고리의 다른 글
Perl 다이어리?? (1) | 2009.02.26 |
---|---|
Perl Study 카페 생성 (11) | 2009.02.19 |
Morse (모스 부호) (9) | 2009.01.29 |
Perl로 짠 IRC Bot (1) | 2009.01.13 |
역 해시 (Reverse Hash) (4) | 2009.01.11 |
Comments