2019년 3월 11일 월요일

omvp, 라즈베리파이(raspberry)

일반적으로 집에서 TV(IPTV)를 시청할때는 보통,
SK, KT, LG 에서 제공하는 셋톱박스(set-top box)를 사용해서 시청을 한다.

푹(pooq),옥수수(oksusu),티빙(tving),뷰잉(viewing) 등 서비스들이 나타나면서,
셋톱박스(set-top box)로  TV(IPTV)를 시청해야 한다는 공식이 무너지긴 했지만,
아직도 많은 사람들이 SK,KT,LG 에서 제공하는 TV(IPTV)를 시청하고 있다.

셋톱박스(set-top box)는 인터넷을 통해 들어오는 영상신호를
TV로 보내주는 역할을 한다.

(원리에 대해 자세히 나와있다.)
(https://www.netmanias.com/ko/?m=view&id=blog&no=7515)

인터넷을 통해 영상신호가 들어오기 때문에,
그 영상신호를 인터넷에 연결되어 있는 일반PC에서 받아서 시청할 수 있다.

예를 들어,
채널5는 100.100.100.5 로 들어오고,
일반PC에서 채널5를 보고 싶다면,
카카오팟플레이어 혹은 VLC플레이어 같은걸로 ,
100.100.100.5 에 접속하면 채널5를 시청할 수 있다.

문제는 영상신호가 인터넷을 통해 들어오기 때문에,
인터넷주소(IP주소)를 알아야 한다는 것이다.

omvp
이 프로그램은 영상신호가 들어오는 인터넷 주소를 알아낸다.

만약 내가 LG 인터넷을 사용하고 있다면,
LG 인터넷에 PC를 연결하고,
omvp 프로그램을 실행하면,
omvp 프로그램이 인터넷주소(IP주소)를 스켄(scan)한다.
그래서 영상신호가 들어오는 인터넷주소(IP주소)를 찾아준다.

만약 KT 인터넷을 사용하고 있다면,
KT 영상신호 주소를 찾게 될테고,
SK 인터넷을 사용하고 있다면,
SK 영상신호 주소를 찾게 될것이다.

당연한 이야기겠지만,
내가 LG 인터넷을 사용하고 있다면,
KT 영상신호 주소 혹은 SK 영상신호 주소를 스켄(scan) 할 수 없다. (찾을 수 없다.)

omvp를 다운로드 하자.
http://ohhara.sarang.net/omvp/bin
이곳에서 배포하고 있다.


자신에게 맞는 OS 를 선택해서 다운로드 하면 된다.

혹, 다운로드가 되지 않는다면, 아래 링크에서 다운로드 가능하다.
https://drive.google.com/open?id=1yVvGZ5hZB21LznOwjbX9ubJaSF0o1j-e

windows_7 라고 표현되어 있긴 하나,
windows_10 에서도 잘 동작한다.
ubuntu_14.04 라고 표현되어 있긴 하나,
ubuntu_16.04 에서도 잘 동작한다는 인터넷 글들이 있다.

설치 방법은 간단하다.
해당 OS에 해당하는 파일 다운로드 후, 압축을 해제하면 된다.

windows에서는 압축 해제 후,
setup.bat를 실행해 줘야 한다. (관리자 권한으로)

그리고 WinPcap.exe를 설치해 줘야 한다.
(압축 해제 하고 나면, 해제된 파일들 중에 존재한다.)

설치 완료 후, 반드시 방화벽을 해제해 줘야 한다.
(제어판 - 시스템 및 보안 - Windows 방화벽 - 설정 사용자 지정)

ubuntu에서는 압축 해제 후,
아래와 같이 추가적인 패키지 파일을 설치해 줘야 한다.

% sudo apt-get update

% sudo apt-get -y install libclutter-gst-2.0-0 libpcap0.8 libgstreamer1.0-0 gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

나는 라즈베리파이(Raspberry Pi 3)를 갖고 있어서,
라즈베리파이(Raspberry Pi 3)에서 시도해 봤다.
아래 명령어를 순차적으로 실행하면 된다.

% sudo apt-get update

% sudo apt-get -y install git libpcap-dev libgstreamer1.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

% git clone https://bitbucket.org/ohhara/ohmulticastvideoscanner.git

% cd ohmulticastvideoscanner

% sudo ./configure

% sudo make

% sudo make install

혹, git clone이 되지 않는다면, 아래 링크에서 다운로드 가능하다.
ohmulticastvideoscanner.tar.gz
https://drive.google.com/open?id=1yVvGZ5hZB21LznOwjbX9ubJaSF0o1j-e

설치가 완료되었다면,
영상신호 인터넷주소(IP주소)를 스켄(scan)해야 한다.

0.0.0.0 ~ 255.255.255.255 이런식으로,
모든 주소를 스켄(scan)하기에는 시간이 너무 오래 걸린다.

다행히도 구글에 검색해 보면,
능력자들이 인터넷주소(IP주소) 대역(범위)를 찾아놨다.

LG
233.14.202.0/24
233.18.145.0/24
233.69.194.0/24

SK
239.192.47.0/24
239.192.40.0/24

KT
233.13.231.0/24
233.14.173.0/24
233.15.200.0/24
233.18.158.0/24
233.19.187.0/24
233.115.200.0/24


구글링을 더 해보니, 자료를 더 찾을 수 있었다.

 통신사
Protocol
IP 
ETC 
LG
RTP
233.18.145.0

 233.14.202.0

 233.69.194.0

 233.14.202.41:60000

SK
UDP 
239.192.47.7:49220 

 239.192.40.26:49220

KT 
RTP 
233.18.158.78:5000 

 233.13.231.18

 233.15.200.19

 233.115.200.19

 233.14.173.109


나는 LG 통신사를 사용하고 있으므로,
LG 통신사 기준으로 실행해 봤다.

스켄(scan)할 랜카드(NIC)를 찾아야 한다.
모든 디바이스(device) 중에 찾아야 하기 때문이다.

% sudo ./omvs -l
dev_idx(0) dev_name(eth0) dev_desc((null))
dev_idx(1) dev_name(any) dev_desc(Pseudo-device that captures on all interfaces)
dev_idx(2) dev_name(lo) dev_desc((null))
dev_idx(3) dev_name(wlan0) dev_desc((null))
dev_idx(4) dev_name(docker0) dev_desc((null))
dev_idx(5) dev_name(bluetooth0) dev_desc(Bluetooth adapter number 0)
dev_idx(6) dev_name(nflog) dev_desc(Linux netfilter log (NFLOG) interface)
dev_idx(7) dev_name(nfqueue) dev_desc(Linux netfilter queue (NFQUEUE) interface)
dev_idx(8) dev_name(usbmon1) dev_desc(USB bus number 1)

dev_idx 0번에 eth0 가 있으므로 나는 0번이다.

스켄(scan)해 보자.

% sudo ./omvs -i 0 -j 4 XXX.XX.XXX.0/24

-i 는 dev_idx 번호를 넣으면 된다.
-j 는 동시에 4개씩 스켄(scan) 하겠다는 의미다.
XXX.XX.XXX.0/24 는 스켄(scan)해야 대역(범위)을 넣으면 된다.

나는 LG 통신사를 사용하고 있으므로,
아래와 같이 하면 된다.

% sudo ./omvs -i 0 -j 4 233.14.202.0/24
% sudo ./omvs -i 0 -j 4 233.18.145.0/24
% sudo ./omvs -i 0 -j 4 233.69.194.0/24

아래처럼 뭔가 주루룩 나온다.
아래처럼 나온다면 잘되고 있는것이다.

openning omvs_out/omvs_1551975701350842.m3u
[0xbd8430] start scanning 233.14.202.64
[0xbd8460] start scanning 233.14.202.128
[0xbd8400] start scanning 233.14.202.0
[0xbd8490] start scanning 233.14.202.192
[0xbd8430] trying to save rtp://233.14.202.64:60000 to omvs_out/233.14.202.64-60000.png
[0xbd8460] finish scanning 233.14.202.128
[0xbd8400] finish scanning 233.14.202.0
[0xbd8430] finish scanning 233.14.202.64
[0xbd8490] finish scanning 233.14.202.192
[0xbd8400] start scanning 233.14.202.1
[0xbd8460] start scanning 233.14.202.129
[0xbd8430] start scanning 233.14.202.65
[0xbd8400] trying to save rtp://233.14.202.1:60000 to omvs_out/233.14.202.1-60000.png
[0xbd8430] trying to save rtp://233.14.202.65:60000 to omvs_out/233.14.202.65-60000.png
[0xbd8490] start scanning 233.14.202.193
[0xbd8490] trying to save rtp://233.14.202.193:60000 to omvs_out/233.14.202.193-60000.png

omvs_out 디렉토리가 생성되면서 그곳에 결과가 저장된다.
만약 영상신호가 잡히는 인터넷주소(IP주소)가 발견되면, 해당 화면을 캡쳐해서,
이렇게 그림파일로 저장해 준다.
그림파일은 나중에 해당 인터넷주소(IP주소)가 어떤 채널인지 판단하는데 사용된다.


이런식으로 결과 파일도 같이 생성된다.
omvs_1545804662441012.m3u
omvs_1545805449343925.m3u
omvs_1545806043127642.m3u

이 파일들을 메모장, 혹은 vi 편집기 같은 걸로 열어보면,
인터넷주소(IP주소)가 적혀있다.

#EXTM3U
#EXTINF:1,1
udp://233.14.202.56:60000
#EXTINF:2,2
udp://233.14.202.57:60000
#EXTINF:3,3
udp://233.14.202.58:60000
#EXTINF:4,4
udp://233.14.202.59:60000
#EXTINF:5,5
udp://233.14.202.60:60000
#EXTINF:6,6
udp://233.14.202.161:60000
#EXTINF:7,7
udp://233.14.202.162:60000
#EXTINF:8,8
udp://233.14.202.167:60000

이것이 바로 영상신호 인터넷주소(IP주소)이다.
그 중에 하나를 VLC 로 play 해보자.

VLC 미디어 재생기 실행 후,
"미디어 - 네트워크 스트림 열기" 클릭


네트워크 주소 입력 후,
"재생(P)" 클릭



인터넷주소(IP주소)에 해당하는 채널이 잘 나올것이다.




출처
http://ohhara.sarang.net/omvp/bin
https://moordev.tistory.com/archive/20170313
http://sky-world.org/wp/2017/08/28/raspberry-pi-3-iptv-extract
https://x86.co.kr/gigi/1748161
https://clien78.tistory.com/125
https://cozy-ho.github.io/server/2018/07/05/IPTV_ip주소-스캔하기.html
https://www.clien.net/service/board/lecture/9739308
https://pastimelife.com/1612
https://lightinglife.tistory.com/138
https://irona.tistory.com/16
https://www.netmanias.com/ko/?m=view&id=blog&no=7515

댓글 3개:

  1. 이렇게 하면 이통사 iptv 전채널들을 모두 볼수 있는건가요?

    답글삭제
    답글
    1. 네 됩니다. 이래저래 설정할것들이 많아서 귀찮아서 그렇지.

      삭제
  2. 작성자가 댓글을 삭제했습니다.

    답글삭제

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...