프로그램에서 다른 프로그램을 실행해서 결과값가져오기

envy100의 이미지

프로그램안에서요
telnet으로 연결해서 특정 명령을 수행하고 그 명령의 수행결과를 가져오고
종료하려고 하는데요
popen으로 "rw"하는것이 가능한가요??
안된다면 어떤 방법이 좋을 까지 생각중인데 어떻게 해야할지 감이 안잡히네요

그럼 좋은 하루 보내세요

cdpark의 이미지

telnet 연결이라면 간단히 popen이나 fork로는 쉽지 않습니다. 터미널 제어까지 해야 하니깐요. tcl/tk에 포함된 expect를 이용해보세요.

envy100의 이미지

저 잘 이해를 못하겠습니다. 초보라서 ^^
telnet만 연결해 명령하나만 수행해서 결과만 가려오고 바로 종료하면 되는데
그렇게 어려울 줄이야

좀 쉽게 설명해 주시면 정말 감사하겠습니다.

도전하라

nainu의 이미지

오히려 telnetlib 같은 것을 사용해서 네트웍 통신을 하는 게 좋을 것 같습니다.
환경에 따라 조금은 다르겠지만.. popen 으로 한정해서 생각지 마시고, 네트웍을 기준으로 생각해보세요..

garuna의 이미지

exec 포트를 이용하면 될 것 같은데요.

512 번 포트가 exec 포트입니다. 512 번 포트로 접속해서 아이디와 패스워드를 입력하고, 명령어를 전송하면 그 결과를 네트웍(접속한 sd)으로 전송해줍니다.

원하시는 용도로는 딱 일것 같은데...

garuna의 이미지

참, 결과를 전송한 후에는 커넥션이 끊깁니다.

envy100의 이미지

특정 포트로만 접속해야 하기 때문에 포트변경을 못해요.
휴~~ 앙 어렵다

도전하라

albertyun의 이미지

expect shell 에 한표...인터넷 검색 하면..자료도 얻을수 있을꺼예요.
예전에 url 하나 알았는데... 없어졌네요.. :(

Think..

zzaratra의 이미지

rsh 이나 또는 ssh 사용은 어떤가요...

$rsh xx.cc.x.cc ls
$ssh 5.3.3.2 ls

errai의 이미지

간단하게 Telnet Protocol 구현해서 소켓 열고 텔넷 포트로 접속 후
간단하게 negotiation 거친후 명령어 send하고 결과 recv하고
소켓 닫고... 그 이상의 방법은 없어보입니다.
expect 를 가지고 스크립트 프로그램을 짠 후에 그 프로그램을
실행시키는게 그 다음 방법이겠군요.

zedai1972의 이미지

->포트 변경 추가 가 불가능 하다면 wish는 좀...결국 wish셀이
21포트 말구 다른 포트로 접속을 새로 만든다는 거니까..

-> telnet 클라이언트(일반적인)에서 서버와 ftp처럼 데이터 송수신하는걸 봤거덩요.어떤 커맨드를 날리니까..

->zmodem을 이용하면 데이터 송수신가능쿠여
(zmodem은 제가 알기로 telnet 포트로 연결하며, telnet과 같은 기능과 화일
송수신 기능이 같이 들어가 있는....ztelnet을 설치하고 텔넷 서버에 접속하고
rz, sz 명령을 쓰면 될거에염)

[-> 텔넷 포트를 이용한 소켓 접속이라면]

위에서 처럼 telnet 프로토콜에 그와 관련 커맨드?가 정의되 있다는 것이고,,

해당 커맨드와 얻고자 하는 화일명 정보를 서버에 전해주면 ...

서버가 화일을 전해 주지 않을까여??

wish ...셀?을 짜는것 보다는 좀 시간이 걸려도 더 일반적이지 않을까 하는
생각이 드네요.

\\(^^ )^^)// **

envy100의 이미지

제가 tcl은 한번도 해본적이 없는데요
대충보니까 제가 원하는 거랑 비슷한거 같은데요

그래서 소켓으로 프로그래밍을 할까 아니면 tcl을 해볼까 고민중입니다.
많은 고수님들의 조언 부탁 드립니다.
소켓은 조금 해봤거든요 아 어떻게 해야할지 ...

감사합니다.

도전하라

zedai1972의 이미지

전 고수는 아니지만, 도움이 되길 바랍니다.

아래는 telnet 클라이언트 설명과 구현 소스에여
첨 negotiation 부터 커맨드 파싱이 쬐만하게 구현된

http://www.linuxlab.co.kr/docs/97-12-3.htm

구리고 첨 제글의 바로 윗분이 쓰신 내용이 될듯한데요.
telnet 프로토콜의 관련 RFC859 에 보면 "FTP의 화일 송수신 기능을 추가.."라고나와요. 관련 RFC인거 같아서리...

제 첫글의 윗분이 쓰신 내용인즉 >
작업완료 -> 연결 종료 -> telnet 옵션 변경 -> 재 연결 -> send or recv -> 종료
로 이해 했는데 ...
위의 순서로 하면 될거 같아요 ^^; 옵션 변경은 toggle binary[전송],
toggle inbinary[수신]하면서 바꾸고 다시 telnet 연결해서 곧바로 커맨드없이
데이터의 송수신만 한다는.. 걸로 이해했는데 ..

toggle은 telent 클라이언트안에서 설정하는 거구 . 소켓으로 위의 링크의
소스처럼 toggle처럼 구현한다면 RFC에 관련 내용이 있겠져..

구럼 수거여 ~

\\(^^ )^^)// **

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.