제가만든 ipchg 프로그램입니다.

ins878의 이미지

안녕하세요. 지방대학교에 다니고 있는 3학년 학부생입니다. 제가 몇 달전에 '공개 소프트웨어 공모전'이 있어서 여기서 참가하려고 만든 프로그램이 있습니다. 아쉽게 최종심사에서 떨어졌지만, 제가 만든 프로그램을 누군가 쓰면 좋겠다는 생각에 이렇게 프로그램을 올립니다.

프로그램은 ipchg이고, 간단하게 설명드리자면, 여러 장소의 네트워크 설정 내용을 프로파일 형식으로 저장해서 네트워크 환경이 바뀔때마다 간단한 키 조작으로 네트워크 설정을 자동으로 변환해주는 프로그램입니다. (레드햇 리눅스용입니다.)
제가 노트북에 레드햇 리눅스를 설치해서 사용하고 있는데, 학교에서 집으로 왔다갔다하면... 네트워크를 다시 봐꿔줘야 한다는 불편함때문에 만들었습니다. 물론 이런 프로그램은 윈도우용으로 있습니다. 노트북 제조 업체에서 만들어서 유틸리티로 넣어주더군요. 하지만 리눅스에는 없어서 이렇게 만들었습니다. (있을 수도 있지만요...)

제가 학부생이고 컴 실력이 부족해서 프로그램 설계를 잘 못했습니다. 부족한 실력으로 프로그램을 만들다보니 소스코드도 엉망입니다. 하지만, 최대한 기능이나 작동에 오류가 없도록 노력했습니다.
(하지만, 버그가 많을 것이라고 생각됩니다.)

만들면서 아쉬운 점은 데비안용도 만들고 싶어지만, 레포트와 시험, 짧은 개발기간(2~3개월)땜시 못 만들었습니다.

리눅스 유저분들 한번 사용해 보시고 답변 부탁드립니다. 답변에 어느 부분이 잘못되고 수정해야 하는지, 어떤 기능이 더 추가 되었으면 좋겠는지 등의..답변 부탁드립니다.

마지막으로 쓰레기 프로그램이니~, 소스가 짜쯩난다는... 식의 답변은 좀 삼가해 주세요~~^^; (솔직히 이런 말을 들을까봐~ 올릴까 말까 고민했습니다.)

File attachments: 
첨부파일 크기
Package icon ipchg.zip1.18 MB

댓글

advanced의 이미지

훌륭하십니다!!
kldp.net 에 등록시키셔서 지속적으로 진행시키시면 하는
바램이 있습니다 :D

weongyo의 이미지

꼭 KLDP.net 에 등록해서 계속 이어 가시길 원합니다. ㅋ

la9527의 이미지

프로그램이 훌륭한데 모가 문제인지..
mls 프로젝트도 첨에는 얼마나 허접했는데염.. ^^;
코드 붙여가면서 발전에 발전을 거듭하고.. 음..

코드는 처음 올릴때는 좀 않좋게 보일수도 있겠지만,
점점 발전하는 모습보면 기분이 좋을 듯 한데여..

kldp.net 에 올리면 관심 가지고 지켜보겠습니다. ^^

kirrie의 이미지

아직 노트북이 없는 관계로 저에겐 useless 어플이지만, 조만간 노트북 구매하면 아주 유용하겠는걸요. ^^

그리고 la9527님의 mls도 아주 유용하게 사용중입니다. 관리하는 서버에 심어 놓고, 접속하면 바로 뜨게 해놨습니다. RSM 따라하기~ ^^

(그런데 alt+x시 따로 스크립트를 수행하도록 할 수는 없나요? alt+x하면 mls 종료하면서 logout도 하고 싶은데.. ㅎㅎㅎ 추후 버젼에서 이 부분을 고려해주세요!)

--->
데비안 & 우분투로 대동단결!

alee의 이미지

제 경우 일단 게이트웨이로 핑을 보낸 후 응답이 없으면 다음 네트워크 설정을 시도하는 식으로 반복하도록 쉘 스크립트를 작성해서 사용했었습니다. 모든 네트워크 설정을 시도한 후 그래도 연결되는 네트워크가 없다면 마지막으로 dhcp를 시도합니다.

ping -c 1 -W 1 x.x.x.x 명령을 사용하면 일단 x.x.x.x로 핑을 보낸 후 1초 내에 응답이 있으면 true를, 1초가 지나도록 응답이 없으면 false를 리턴합니다. 이것을 이용하면 매우 간단하게 스크립트를 작성할 수 있습니다. 귀찮게 키 조작을 할 필요 없이 자동으로 선택되도록 만든다면 더 편리하지 않을까요?

dondek의 이미지

alee wrote:
제 경우 일단 게이트웨이로 핑을 보낸 후 응답이 없으면 다음 네트워크 설정을 시도하는 식으로 반복하도록 쉘 스크립트를 작성해서 사용했었습니다. 모든 네트워크 설정을 시도한 후 그래도 연결되는 네트워크가 없다면 마지막으로 dhcp를 시도합니다.

ping -c 1 -W 1 x.x.x.x 명령을 사용하면 일단 x.x.x.x로 핑을 보낸 후 1초 내에 응답이 있으면 true를, 1초가 지나도록 응답이 없으면 false를 리턴합니다. 이것을 이용하면 매우 간단하게 스크립트를 작성할 수 있습니다. 귀찮게 키 조작을 해서 직접 네트워크를 선택할 필요가 있을까요?

그 스크립트를 사용해서 network 설정하는 시간은 얼마나 걸리는지요? 언뜻 봐서는 아주 많이 걸릴듯 해서요.

진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서

hwandori의 이미지

멋져요..^^ 세가지 인터페이스를 지원하는 사용자를 위한 노력 또한 대단합니다.. :)

espoirgod의 이미지

오.. 멋져요 ㅠ0ㅠ
좋은 자료 공유해주셔서 감사합니다~~~!!

배움의 목적을 잊지 말자!!

alee의 이미지

dondek wrote:
alee wrote:
제 경우 일단 게이트웨이로 핑을 보낸 후 응답이 없으면 다음 네트워크 설정을 시도하는 식으로 반복하도록 쉘 스크립트를 작성해서 사용했었습니다. 모든 네트워크 설정을 시도한 후 그래도 연결되는 네트워크가 없다면 마지막으로 dhcp를 시도합니다.

ping -c 1 -W 1 x.x.x.x 명령을 사용하면 일단 x.x.x.x로 핑을 보낸 후 1초 내에 응답이 있으면 true를, 1초가 지나도록 응답이 없으면 false를 리턴합니다. 이것을 이용하면 매우 간단하게 스크립트를 작성할 수 있습니다. 귀찮게 키 조작을 해서 직접 네트워크를 선택할 필요가 있을까요?

그 스크립트를 사용해서 network 설정하는 시간은 얼마나 걸리는지요? 언뜻 봐서는 아주 많이 걸릴듯 해서요.

한가지 설정을 테스트 하는 데 1초 정도 걸리니까 5가지 네트워크 설정이 있다면 최대 5초 정도 걸립니다. 보통 네트워크는 부팅 초기에 잡게 되므로 부팅이 끝나기 전에 대부분 다 잡힙니다. 많이 걸릴 이유가 없죠

ins878의 이미지

저의 부족한 프로그램에 관심을 가져주셔서 감사합니다. 아직 부족한 것이 많은 학생이지만, kldp.net에 등록해서 지속적으로 수정해 나가겠습니다. 필요한 기능이나 수정할 내용을 계속 코치해 주세요..^^

저도 alee님 처럼 ping 테스트를 해서 자동 연결을 할 수 있는 방법이 좋을 것 같다는 생각이 드네요~~^^ 그런데 궁금한 점이 있는데요. 요세 대부분 네트워크에 ping의 응답을 안하게 막아 놓잖아요. alee님은 게이트웨이에 ping을 하신다고 했는데, 게이트웨이는 ping을 막아 놓지 않는가요?

Tony의 이미지

와아 멋져요! 왜 이런 프로그램이 없을까 했는데... 감사합니다 ^^*

dondek의 이미지

alee wrote:
dondek wrote:
alee wrote:
제 경우 일단 게이트웨이로 핑을 보낸 후 응답이 없으면 다음 네트워크 설정을 시도하는 식으로 반복하도록 쉘 스크립트를 작성해서 사용했었습니다. 모든 네트워크 설정을 시도한 후 그래도 연결되는 네트워크가 없다면 마지막으로 dhcp를 시도합니다.

ping -c 1 -W 1 x.x.x.x 명령을 사용하면 일단 x.x.x.x로 핑을 보낸 후 1초 내에 응답이 있으면 true를, 1초가 지나도록 응답이 없으면 false를 리턴합니다. 이것을 이용하면 매우 간단하게 스크립트를 작성할 수 있습니다. 귀찮게 키 조작을 해서 직접 네트워크를 선택할 필요가 있을까요?

그 스크립트를 사용해서 network 설정하는 시간은 얼마나 걸리는지요? 언뜻 봐서는 아주 많이 걸릴듯 해서요.

한가지 설정을 테스트 하는 데 1초 정도 걸리니까 5가지 네트워크 설정이 있다면 최대 5초 정도 걸립니다. 보통 네트워크는 부팅 초기에 잡게 되므로 부팅이 끝나기 전에 대부분 다 잡힙니다. 많이 걸릴 이유가 없죠

아. 저장되어 있는 설정에 대해서 선택을 하는 것이었군요. :)
저는 모든 네트워크에 대한 스크립트라고 한 줄 알고 착각을 했었네요.

진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서

alee의 이미지

ins878 wrote:
저의 부족한 프로그램에 관심을 가져주셔서 감사합니다. 아직 부족한 것이 많은 학생이지만, kldp.net에 등록해서 지속적으로 수정해 나가겠습니다. 필요한 기능이나 수정할 내용을 계속 코치해 주세요..^^

저도 alee님 처럼 ping 테스트를 해서 자동 연결을 할 수 있는 방법이 좋을 것 같다는 생각이 드네요~~^^ 그런데 궁금한 점이 있는데요. 요세 대부분 네트워크에 ping의 응답을 안하게 막아 놓잖아요. alee님은 게이트웨이에 ping을 하신다고 했는데, 게이트웨이는 ping을 막아 놓지 않는가요?

보통 방화벽에서 ping을 막지 게이트웨이에서부터 막지는 않습니다. 안 그런 곳이 있을수도 있지만 저는 게이트웨이에서 ping을 막아놓은 경우는 한 번도 보지 못했습니다.

그런데 그냥 학습 목적이 아니라면 솔직히 10분이면 짤 수 있는 스크립트를 사용해도 되는 일을 궂이 프로그램을 만들어서 할 필요가 있을까 하는 생각이 드네요. 또, 이미 만들어져 있는 프로그램도 여럿 있습니다. 일단 데비안 패키지로 제공되는 것들만 대충 찾아봐도 5가지가 나오네요.

ifscheme, intuitively, laptop-net, netapplet, whereami

wkpark의 이미지

alee wrote:

그런데 그냥 학습 목적이 아니라면 솔직히 10분이면 짤 수 있는 스크립트를 사용해도 되는 일을 궂이 프로그램을 만들어서 할 필요가 있을까 하는 생각이 드네요. 또, 이미 만들어져 있는 프로그램도 여럿 있습니다. 일단 데비안 패키지로 제공되는 것들만 대충 찾아봐도 5가지가 나오네요.

ifscheme, intuitively, laptop-net, netapplet, whereami


만들 필요 없는 프로그램이 왜 데비안 패키지로 5가지나 될까요?

반대로 생각하면 그게 또 만들어야 될 이유가 될 수 있습니다.

온갖 참된 삶은 만남이다 --Martin Buber

alee의 이미지

맨페이지를 보니 intuitively는 ARP를 이용하네요. ping이 막혀 있어도 관계가 없겠네요.

Sends out ARP (address resolution protocol) requests and, depending on who answers, it configures the network interface and default route. It also links the files in /etc/intuitively/NETWORK into your root hierar-chy

ssggkim의 이미지

alee wrote:
그런데 그냥 학습 목적이 아니라면 솔직히 10분이면 짤 수 있는 스크립트를 사용해도 되는 일을 궂이 프로그램을 만들어서 할 필요가 있을까 하는 생각이 드네요. 또, 이미 만들어져 있는 프로그램도 여럿 있습니다. 일단 데비안 패키지로 제공되는 것들만 대충 찾아봐도 5가지가 나오네요.

ifscheme, intuitively, laptop-net, netapplet, whereami

사용자에게 있어 선택권이 많다는 것은 좋은 것 아니겠습니까? 자기 취향에 따라 쓰기 좋은 것을 고르면 되니까요. :)

Kari의 이미지

제발 sf나 kldp.net에 등록하셔서 업데이트도 해 주시길 ^^
잘 쓰겠습니다.

rhizome의 이미지

ins878 wrote:
안녕하세요. 지방대학교에 다니고 있는 3학년 학부생입니다. 제가 몇 달전에 '공개 소프트웨어 공모전'이 있어서 여기서 참가하려고 만든 프로그램이 있습니다. 아쉽게 최종심사에서 떨어졌지만, 제가 만든 프로그램을 누군가 쓰면 좋겠다는 생각에 이렇게 프로그램을 올립니다.

프로그램은 ipchg이고, 간단하게 설명드리자면, 여러 장소의 네트워크 설정 내용을 프로파일 형식으로 저장해서 네트워크 환경이 바뀔때마다 간단한 키 조작으로 네트워크 설정을 자동으로 변환해주는 프로그램입니다. (레드햇 리눅스용입니다.)
제가 노트북에 레드햇 리눅스를 설치해서 사용하고 있는데, 학교에서 집으로 왔다갔다하면... 네트워크를 다시 봐꿔줘야 한다는 불편함때문에 만들었습니다. 물론 이런 프로그램은 윈도우용으로 있습니다. 노트북 제조 업체에서 만들어서 유틸리티로 넣어주더군요. 하지만 리눅스에는 없어서 이렇게 만들었습니다. (있을 수도 있지만요...)

제가 학부생이고 컴 실력이 부족해서 프로그램 설계를 잘 못했습니다. 부족한 실력으로 프로그램을 만들다보니 소스코드도 엉망입니다. 하지만, 최대한 기능이나 작동에 오류가 없도록 노력했습니다.
(하지만, 버그가 많을 것이라고 생각됩니다.)

만들면서 아쉬운 점은 데비안용도 만들고 싶어지만, 레포트와 시험, 짧은 개발기간(2~3개월)땜시 못 만들었습니다.

리눅스 유저분들 한번 사용해 보시고 답변 부탁드립니다. 답변에 어느 부분이 잘못되고 수정해야 하는지, 어떤 기능이 더 추가 되었으면 좋겠는지 등의..답변 부탁드립니다.

마지막으로 쓰레기 프로그램이니~, 소스가 짜쯩난다는... 식의 답변은 좀 삼가해 주세요~~^^; (솔직히 이런 말을 들을까봐~ 올릴까 말까 고민했습니다.)

좋은 일 하셨습니다. 이런 분들이 한두분씩 모여 리눅스도 만글고 Gnome과 KDE도 만들고 하는 것 같습니다. 아직 어리시니 많은 발전이 있을 것 같네요.

훌륭한 프로그래머 되세요. :)

거짓말이 없다는 것은 현대성보다도 사상보다도
백배나 더 중요한 일이다.

alee의 이미지

ssggkim wrote:
alee wrote:
그런데 그냥 학습 목적이 아니라면 솔직히 10분이면 짤 수 있는 스크립트를 사용해도 되는 일을 궂이 프로그램을 만들어서 할 필요가 있을까 하는 생각이 드네요. 또, 이미 만들어져 있는 프로그램도 여럿 있습니다. 일단 데비안 패키지로 제공되는 것들만 대충 찾아봐도 5가지가 나오네요.

ifscheme, intuitively, laptop-net, netapplet, whereami

사용자에게 있어 선택권이 많다는 것은 좋은 것 아니겠습니까? 자기 취향에 따라 쓰기 좋은 것을 고르면 되니까요. :)

예. 제 생각이 짧았습니다. 다만 위에 나열된 것들과는 다른, 특색있는 프로그램으로 발전시킨다면 좀더 유용한 프로그램이 될 것 같습니다.

intuitively는 위에 언급한대로 ARP를 이용하여 자동으로 잡아줍니다.
whereami는 fping을 이용하네요. 또, 어떤 프로그램은 데몬으로 돌아가면서 케이블을 바꿔 꼽으면 그때그때 알아서 네트워크 설정을 바꿔줍니다. laptop-net은 네트워크 케이블이 꼽혀 있는지 여부를 감지해서 케이블을 뽑았다가 다시 꼽으면 네트워크를 다시 설정해줍니다. netapplet은 이름에서 알 수 있듯이 gnome이나 kde 애플릿으로 실행되는 것이 특징입니다. 또, eth0 eth1 등 여러개의 인트페이스는 물론이고 무선랜까지 지원하는 것도 있습니다.

ipchg의 특징은 여러 가지 인터페이스를 지원한다는 점이겠네요. 거기에 추가로 다른 프로그램들의 장점까지 수용한다면 훨씬 더 유용한 프로그램이 될 것 같습니다.

tinywolf의 이미지

뭔가를 만드는 건 재미있으니까요...

(학교는 에버퀘스트 ip를 열어달라~ 열어달라~)

ㅡ_ㅡ;

DebPolaris의 이미지

좋은 정보 감사합니다.

--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heu

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

ahsan의 이미지

설명문을 보니 정말 놀라운 기능의 프로그램이네요
제가 지금 c를 배우고 있는데 님의 프로그램 보면서 좋은 공부가 될것 같아요
앞으로 프로그램을 계속 업데이트해서 큰 성취 있으시길...

nahs777의 이미지

요샌 ubuntu의 networkmanager를 그냥 사용하고 있어서 크게 쓸일은 없을것 같지만.
설명서만 봐도 정말 잘만드신 프로그램 같네요.^^

junilove의 이미지

프로그래밍이 무엇인지 아직도 모르는 저로써는 부럽고 대단해 보이실 뿐입니다. 좋은 자료 감사합니다.
제 수준에서는 그냥 스크립트로...하하하...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.