클로즈업 프로그램이 자동으로 매크로에 로그인합니다.ttl

■teratom 매크로를 통해 자동 로그인
Linux Unix에 얽매이지 않고 플랫폼 매크로 로그인을 사용할 수 있는 프로그램을 만들었다.
이번 콘텐츠.
  • 자동 로그인
  • 자동 로그 출력
  • 로그인 사용자 이름 및 암호 숨기기
  • 두 번째 이후 로그인 사용
  • ※ 텔넷 접속 제한
    디렉토리 구조

    Qiita에 절차를 공개했다.
    ※ 이 페이지의 맨 아래에 프로그램이 붙어 있습니다. 최신판은 Qita를 참조하세요.
    위의 디렉토리 구조를 사용하여 확장할 수 있습니다.
    별품
    맹독 자체
    login20160901.태블릿 매크로로ttl 파일을 읽고 실행해야 합니다.

    그때 플랫폼 버전은 4.74 이후가 필요하다.

    log 디렉토리
    목록만 있으면 돼.
    ※ 자동 로그 출력 목록
    파일 이름: 년 월 일 시 분 초teraterm.log
    데이터 카탈로그
    목록만 있으면 돼.
    ※ 로그인 아이디와 비밀번호를 숨긴 파일의 저장 위치
    파일 이름: password.dat
    데이터 카탈로그
    dat 디렉토리의 datlogin 입니다.txt 파일을 만들어야 합니다.
    다음은 텍스트 파일 내용의 예이다

    첫 번째 줄: 제목 (첫 번째 문자가 있어야 하는 ★ 기호)
    8행: 1행의 머리글과 연결(2자 이후에는 동일)
    9행: 로그인 대상 IP 주소(HOSTS 이름도 사용 가능)
    10줄: 로그인지의 로그인 이름을 끌어내는 키(로그인 이름은 필요 없음)
    11줄: 로그인 비밀번호를 뽑는 키(비밀번호 필요 없음)
    행 12: 0 고정
    13행: 목적지에 로그인한 문자 코드(1 작성 후 문자 코드 지정)
    ※ 문자 코드에 구애받지 않고 0(SJIS가 됨)만 작성.
    ※ 이번 매크로 프로그램은 EUC-jp, SJIS, UTF8 3종을 지원합니다.
    참고: datlogin.txt 파일을 연 상태에서 매크로를 이동할 수 없습니다. 닫으십시오.
    단계 사용
    1. 매크로 파일 읽기

    2. 로그인 서버 선택

    ※datlogin.txt 파일 ★ 기호가 있는 연속 줄을 읽습니다.
    매크로 사용자는 시작 번호(두 번째 문자)를 입력하고 OK 버튼을 누릅니다.
    3. 로그인 사용자 이름 입력

    ※datlogin.txt 파일에 쓸 문자열 (열 번째 줄) 을 표시합니다.
    4. 로그인 비밀번호 입력

    ※datlogin.txt 파일에 쓰기 위한 문자열(11행)을 표시합니다.
    5. 로그인 완료


    ■ 작업이 끝나면
    로그 출력

    log 디렉터리는 출력 로그에 속합니다.
    ※TERATERM.로그 출력 목적지가 INI 파일에 기록되지 않은 경우에만 해당됩니다.
    ■ 로그인 실패

    오류 화면 표시, TERTAME 매크로를 종료...해야 합니다.
    ■프로그램
    ※ 20160903시간
    login20160901.ttl
    ;***********************************************************************
    ;
    ;プログラム名:サーバ一覧からの選択後自動ログイン実施
    ;機能名   :テラタームログインマクロ
    ;ファイル名 :login20160901.tll
    ;文字コード :-
    ;機能概要  :サーバにテラタームを用いてログインするときに使用する.
    ;       一度ログインに成功した場合二度目以降は一覧から選ぶ
    ;       だけでログインが完了する.
    ;       ログイン先の文字コードも選択可能
    ;呼び出し形式:テラタームマクロから呼び出す
    ;戻り値   :キーボードからの入力を受け付ければ正常終了
    ;       入力を受け付けない場合バグがある.手動でテラタームごと終了すること.そしてマクロを直すか手動でログインし直す.
    ;
    ;ディレクトリ構造:
    ;       テラタームマクロ(本ファイル).ttl
    ;         |
    ;         |---dat/
    ;         |   datlogin.txt ←ログイン用サーバ情報
    ;         |
    ;         |---data/
    ;         |   password.dat ←ログイン後に生成される
    ;         |
    ;         |---log/
    ;             [年月日時分秒]_teraterm.log ←ログイン後に生成される
    ;
    ;作成者   :20160901 chesscommands
    ;改版履歴  :20160901 chesscommands 新規作成         R1.0
    ;      :20160903 chesscommands インデント追加      R1.1
    ;
    ;***********************************************************************
    
    getdir mcrodir_onDir
    ; ■ログインサーバを選択する
    logintxtname = ''
    makepath aaa mcrodir_onDir '¥dat¥datlogin.txt'
    filesearch aaa
    if 0 = result then
        messagebox mcrodir_onDir 'debug'
        messagebox 'file not' 'exit'
        end
    endif
    mcrodir_datlogin = mcrodir_onDir
    strconcat mcrodir_datlogin '¥dat'
    setdir mcrodir_datlogin
    fileopen fhandle 'datlogin.txt' 0
    if 0 > fhandle then
        messagebox 'file not' 'exit'
        end
    endif
    show -1
    txtTitleline = ''
    txtline = ''
    :loop
        filereadln fhandle line
        if 1 = result goto fclose
        txtline = line
        code2str starStr 33178
        strmatch txtline starStr
        if 0 < result then
            strconcat txtTitleline txtline
            strconcat txtTitleline #13#10
        endif
    goto loop
    :fclose
    fileclose fhandle
    inputbox txtTitleline 'serverSelect'
    str2int serverNumber inputstr
    if 1 <> result then
        exit
    endif
    mcrodir_datlogin = mcrodir_onDir
    strconcat mcrodir_datlogin '¥dat'
    setdir mcrodir_datlogin
    fileopen fhandle 'datlogin.txt' 0
    if 0 > fhandle then
        messagebox 'file not' 'exit'
        end
    endif
    txtTitleline = ''
    txtline = ''
    :loopSecond
        filereadln fhandle line
        if 1 = result goto fclose
        txtline = line
        str2int serverTitleLine txtline
        if serverNumber = serverTitleLine then
            goto loopexit
        endif
    goto loopSecond
    :loopexit
    filereadln fhandle rline
    filereadln fhandle uline
    filereadln fhandle pline
    filereadln fhandle cline
    filereadln fhandle eline
    fileclose fhandle
    mozjiicode = 'sjis'
    str2int streline eline
    if 1 = result then
        if 1 = streline then
            strlen eline
            if 1 < result then
                strcopy eline 2 result eeline
                strcompare eeline 'EUC-JP'
                if 0 = result then
                    mozjiicode = 'EUC'
                endif
                strcompare eeline 'Shift_JIS'
                if 0 = result then
                    mozjiicode = 'SJIS'
                endif
                strcompare eeline 'UTF-8'
                if 0 = result then
                    mozjiicode = 'UTF8'
                endif
            endif
        endif
        mozjiicode = 'SJIS'
    endif
    tellnet = ':23 /nossh /T=1 /NOLOG '
    strconcat tellnet ' /KR='
    strconcat tellnet mozjiicode
    strconcat tellnet ' /KT='
    strconcat tellnet mozjiicode
    connectionserver = rline
    strconcat connectionserver tellnet
    connect connectionserver
    ; ■現在のリンク及び接続の状態を確認する
    testlink
    if 2 <> result then
        messagebox 'link err' 'exit'
        end
    endif
    showtt -1
    ; ■その他
    enablekeyb 0
    timeout = 5
    getver version '4.74'
    if 0 > result then
        messagebox 'ver old' 'exit'
        goto err_END
    endif
    goto gotoJump
    :err_END
    testlink
    if 0 <> result then
        closett
    endif
    end
    :gotoJump
    ; ■ログを記録する
    getdate logfileYmHHSlog '%Y%m%d%H%M%S_teraterm.log'
    mcrodir_log = mcrodir_onDir
    logtxtname = ''
    strconcat logtxtname logfileYmHHSlog
    strconcat mcrodir_log '¥log'
    changedir mcrodir_log
    logopen logtxtname 0 0 0 0 9
    ; ■パスワードファイルを読み込む
    mcrodir_datFile = ''
    mcrodir_datFile = mcrodir_onDir
    strconcat mcrodir_data '¥data'
    strconcat mcrodir_datFile mcrodir_data
    setdir mcrodir_datFile
    UsernamePrompt = 'login:'
    UserIDname = 'ユーザ名('
    strconcat UserIDname rline
    strconcat UserIDname ')のKey('
    strconcat UserIDname uline
    strconcat UserIDname ')'
    getpassword 'password.dat' UserIDname Username
    PasswordPrompt = 'Password:'
    PasswordKey = 'パスワード('
    strconcat PasswordKey rline
    strconcat PasswordKey ')のKey('
    strconcat PasswordKey pline
    strconcat PasswordKey ')'
    getpassword 'password.dat' PasswordKey Password
    wait UsernamePrompt
    sendln Username
    wait PasswordPrompt
    sendln Password
    settitle txtline
    logpause
    ; ■1行取得
    pause 2
    sendln
    flushrecv
    sendln
    recvln
    waitregex '.*[^%]+.*[%]{1}.*' '.*[^$]+.*[$]{1}.*' '.*[^#]+.*[#]{1}.*' '[^.]*\$[^.]*' '[^.]*#[^.]*'
    prompt = matchstr
    if 5 < result then
        messagebox 'err' 'exit'
        goto err_END
    endif
    if 1 > result then
        messagebox 'err' 'exit'
        goto err_END
    endif
    sendln
    strtrim prompt ''
    flushrecv
    sendln
    wait prompt
    if 1 <> result then
        messagebox 'err' 'exit'
        goto err_END
    endif
    ;sendln ' set -o ignoreeof'
    ;sendln ' tabs -4'
    ;sendln ' alias hostname="uname -a"'
    ;sendln ' alias tarview="tar tvf "'
    wait prompt
    sendln 
    wait prompt
    logstart
    sendln 
    wait prompt
    clearscreen 1
    str2int strcline cline
    if 1 = result then
        if 1 = strcline then
            strlen cline
            if 1 < result then
                strcopy cline 2 result ccline
                sendln 'cd 'ccline
                sendln
            endif
        endif
    endif
    str2int streline eline
    if 1 = result then
        if 1 = streline then
            strlen eline
            if 1 < result then
                strcopy eline 2 result eeline
                strcompare eeline 'EUC-JP'
                if 0 = result then
                    callmenu 54011
                    callmenu 54111
                endif
                strcompare eeline 'Shift_JIS'
                if 0 = result then
                    callmenu 54010
                    callmenu 54110
                endif
                strcompare eeline 'UTF-8'
                if 0 = result then
                    callmenu 54013
                    callmenu 54113
                endif
            endif
        endif
        mozjiicode = 'SJIS'
    endif
    wait prompt
    enablekeyb 1
    sendln 'date'
    showtt 1
    

    좋은 웹페이지 즐겨찾기