IRC에서 오퍼질을 하다보면
밴할때 좀 난감한 경우가 있다.
분명히 밴을 했는데도 다시 들어오는 놈들도 있고
광역밴이 잘못 들어가면서 다른 사람들까지 덩달아 밴이 되는 경우도 있고..
가장 큰 문제는 한아얄씨나 시서브, 루아틱 같은 경우는
로그인한 사용자에 한해 아이피 숨김 가능이 있는데
이런 사람들에게 광역밴을 먹이면
로그인 유저들이 단체로 강제 퇴갤하는 경우가 생긴다는점..
mIRC의 경우 $address($nick,N) [N은 0~9 사이의 숫자] 로 아이피를 따서 밴을 하게 되는데
0: *!user@host
1: *!*user@host
2: *!*@host
3: *!*user@*.host
4: *!*@*.host
5: nick!user@host
6: nick!*user@host
7: nick!*@host
8: nick!*user@*.host
9: nick!*@*.host
이런식으로 각각 다르게 아이피를 따오게 된다.
예를 들자면
로그인해서 아이피를 숨긴 갑과 로그인 안해서 아이피가 드러나는 을이 있다고 가정해보자.
갑(~gab@gab.users.RubetteIRC.org)과 을(~eul@123.45.678.90)에게 각각 어드레스 명령어로 아이피를 뽑아보자면
1: *!*user@host
2: *!*@host
3: *!*user@*.host
4: *!*@*.host
5: nick!user@host
6: nick!*user@host
7: nick!*@host
8: nick!*user@*.host
9: nick!*@*.host
이런식으로 각각 다르게 아이피를 따오게 된다.
예를 들자면
로그인해서 아이피를 숨긴 갑과 로그인 안해서 아이피가 드러나는 을이 있다고 가정해보자.
갑(~gab@gab.users.RubetteIRC.org)과 을(~eul@123.45.678.90)에게 각각 어드레스 명령어로 아이피를 뽑아보자면
0: *!user@host 갑(*!~gab@gab.users.RubetteIRC.org) 을(*!~eul@123.45.678.90)
1: *!*user@host 갑(*!*gab@gab.users.RubetteIRC.org) 을(*!*eul@123.45.678.90)
2: *!*@host 갑(*!*@gab.users.RubetteIRC.org) 을(*!*@123.45.678.90)
3: *!*user@*.host 갑(*!*gab@*.users.RubetteIRC.org) 을(*!*eul@123.45.678.*)
4: *!*@*.host 갑(*!*@*.users.RubetteIRC.org) 을(*!*@123.45.678.*)
5: nick!user@host 갑(갑!~gab@gab.users.RubetteIRC.org)을(을!~eul@123.45.678.90)
6: nick!*user@host 갑(갑!*gab@gab.users.RubetteIRC.org) 을(을!*eul@123.45.678.90)
7: nick!*@host 갑(갑!*@gab.users.RubetteIRC.org) 을(을!*@123.45.678.90)
8: nick!*user@*.host 갑(갑!*gab@*.users.RubetteIRC.org) 을(을!*eul@123.45.678.*)
9: nick!*@*.host 갑(갑!*@*.users.RubetteIRC.org) 을(을!*@123.45.678.*)
각각 이렇게 된다.
참고로 *은 와일드카드. 뭔지 모르는 사람은 그냥 모른채로 있는걸 추천한다.
일일히 설명하고 싶지 않아;;
물론 5~9번은 닉을 바꾸면 뚫리기 때문에 잘 쓰지 않고
0번과 1번은 큰 차이가 없기 때문에 0번 역시 잘 안쓰인다.
거기에 1번과 3번은 user을 바꾸면 쉽게 뚫린다는거. 바꿀줄 아는 사람이 얼마 없긴 하지만..
2번과 4번이 대표적인 광역밴인데..
보통 2번을 하는게 무난한데 이 경우 끝자리만 바뀌는 유동아이피는 쉽게 뚫게 되고
4번을 해버리면 로그인 유저 전체를 강제퇴갤 시킬 위험성이 있다는게 문제.
한아얄의 경우 [msg ^^ 밴 #채널 닉네임] 으로 빵글이 밴을 하게 될때
아이피 숨김은 1번, 아니라면 3번을 걸게 되는데
이건 유저네임을 바꾸면 그냥 뚫린다.
if ($address($nick,4) == *!*@*.users.HanIRC.org) 같이
if문을 사용해서 2번 아니면 4번을 적용하는 방법도 있긴 한데
이건 아얄씨가 조금만 렉이 생겨도 에러를 일으킨다는게...
이 모든걸 해결하는 방법은
$puttok($address($nick,2),*,4,46)
엠아얄 설명서를 보면
$puttok(text,token,N,C) Overwrites the Nth token in text with a new token. 라고 설명하고 있는데
text의 C를 기준으로 N번째를 token으로 치환시킨다는 의미.
그러니깐 $puttok($address($nick,2),*,4,46)의 경우 4번째 단위에 있는 텍스트를 *로 치환.
이걸 적용하면
갑(~gab@gab.users.RubetteIRC.org)은 (*!*@gab.users.RubetteIRC.*)이 되고
을(~eul@123.45.678.90)은 (*!*@123.45.678.*)이 됨.
문제 해결 ㅋ
아이피 숨김한 사람의 구별키워드는 맨 앞에 있으니 상관이 없고
아이피 숨기지 않은 사람은 맨끝자리를 *로 치환하면서 유동아이피를 어느정도 막을수 있다는 것.
당연히 유저네임 변경이나 닉 변경도 막을수 있다.
스크립 짤때 요긴하게 사용하자.
뭐.. 더 효율적인 방법이 있을지도 모르긴 하지만..;;
아 다만 vhost를 변경한 사람을 대상으로 하는 경우는 위험성이 좀 남아있긴 하지만..
그런 사람은 극소수니깐..
1: *!*user@host 갑(*!*gab@gab.users.RubetteIRC.org) 을(*!*eul@123.45.678.90)
2: *!*@host 갑(*!*@gab.users.RubetteIRC.org) 을(*!*@123.45.678.90)
3: *!*user@*.host 갑(*!*gab@*.users.RubetteIRC.org) 을(*!*eul@123.45.678.*)
4: *!*@*.host 갑(*!*@*.users.RubetteIRC.org) 을(*!*@123.45.678.*)
5: nick!user@host 갑(갑!~gab@gab.users.RubetteIRC.org)을(을!~eul@123.45.678.90)
6: nick!*user@host 갑(갑!*gab@gab.users.RubetteIRC.org) 을(을!*eul@123.45.678.90)
7: nick!*@host 갑(갑!*@gab.users.RubetteIRC.org) 을(을!*@123.45.678.90)
8: nick!*user@*.host 갑(갑!*gab@*.users.RubetteIRC.org) 을(을!*eul@123.45.678.*)
9: nick!*@*.host 갑(갑!*@*.users.RubetteIRC.org) 을(을!*@123.45.678.*)
각각 이렇게 된다.
참고로 *은 와일드카드. 뭔지 모르는 사람은 그냥 모른채로 있는걸 추천한다.
일일히 설명하고 싶지 않아;;
물론 5~9번은 닉을 바꾸면 뚫리기 때문에 잘 쓰지 않고
0번과 1번은 큰 차이가 없기 때문에 0번 역시 잘 안쓰인다.
거기에 1번과 3번은 user을 바꾸면 쉽게 뚫린다는거. 바꿀줄 아는 사람이 얼마 없긴 하지만..
2번과 4번이 대표적인 광역밴인데..
보통 2번을 하는게 무난한데 이 경우 끝자리만 바뀌는 유동아이피는 쉽게 뚫게 되고
4번을 해버리면 로그인 유저 전체를 강제퇴갤 시킬 위험성이 있다는게 문제.
한아얄의 경우 [msg ^^ 밴 #채널 닉네임] 으로 빵글이 밴을 하게 될때
아이피 숨김은 1번, 아니라면 3번을 걸게 되는데
이건 유저네임을 바꾸면 그냥 뚫린다.
if ($address($nick,4) == *!*@*.users.HanIRC.org) 같이
if문을 사용해서 2번 아니면 4번을 적용하는 방법도 있긴 한데
이건 아얄씨가 조금만 렉이 생겨도 에러를 일으킨다는게...
이 모든걸 해결하는 방법은
$puttok($address($nick,2),*,4,46)
엠아얄 설명서를 보면
$puttok(text,token,N,C) Overwrites the Nth token in text with a new token. 라고 설명하고 있는데
text의 C를 기준으로 N번째를 token으로 치환시킨다는 의미.
그러니깐 $puttok($address($nick,2),*,4,46)의 경우 4번째 단위에 있는 텍스트를 *로 치환.
이걸 적용하면
갑(~gab@gab.users.RubetteIRC.org)은 (*!*@gab.users.RubetteIRC.*)이 되고
을(~eul@123.45.678.90)은 (*!*@123.45.678.*)이 됨.
문제 해결 ㅋ
아이피 숨김한 사람의 구별키워드는 맨 앞에 있으니 상관이 없고
아이피 숨기지 않은 사람은 맨끝자리를 *로 치환하면서 유동아이피를 어느정도 막을수 있다는 것.
당연히 유저네임 변경이나 닉 변경도 막을수 있다.
스크립 짤때 요긴하게 사용하자.
뭐.. 더 효율적인 방법이 있을지도 모르긴 하지만..;;
아 다만 vhost를 변경한 사람을 대상으로 하는 경우는 위험성이 좀 남아있긴 하지만..
그런 사람은 극소수니깐..






