質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4018閲覧

パスワード空白で設定されたIISのFTPへ接続する場合、Pythonでftpログインでエラーにならない方法について

masa_81

総合スコア4

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/08/26 08:27

編集2019/08/26 09:03

前提・実現したいこと

Windows Embedded Standard 7上のIIS(Version7.5)でFTPサーバを立てたCLが有ります。
このFTPユーザ"hogepiyo"には、パスワード設定はされていません。

実現したい事は、上記PCに対しLinuxサーバに置いたバイナリやテキストファイルを、
FTPを通じ自動更新させる仕組みをPython3.6で作成したいと考えています。

###以下ソース

import os from ftplib import FTP dest_ip_address # HOST IP Address upload_src_path = "/home/modify_zips/" + dist_ip_address + ".zip" # 転送元パス upload_dest_path = "d:\modify_zipfile" # CL転送先フォルダ # 1. SV側・更新用zipファイル保存用ディレクトリ内ファイル有無確認 zipfile_exists_result = os.path.isfile(upload_src_path) if zipfile_exists_result is True: # FTP接続 ftp = FTP( source_address=dest_ip_address + ", 42000", user="hogepiyo" ) if not ftp: print('FTP=NG') else: ftp.login("hogepiyo", "")#ログイン ftp.close() print('FTP=OK') print(ftp) else: print(zipfile_exists_result)

###以下発生したエラーメッセージ

Traceback (most recent call last):
File "/home/modify_zipfiles_transfer.py", line 46, in <module>
ftp.login("hogepiyo", "")
File "/usr/lib64/python3.6/ftplib.py", line 418, in login
resp = self.sendcmd('USER ' + user)
File "/usr/lib64/python3.6/ftplib.py", line 272, in sendcmd
self.putcmd(cmd)
File "/usr/lib64/python3.6/ftplib.py", line 199, in putcmd
self.putline(line)
File "/usr/lib64/python3.6/ftplib.py", line 194, in putline
self.sock.sendall(line.encode(self.encoding))
AttributeError: 'NoneType' object has no attribute 'sendall'

パスワード無しのFTP接続時にエラー発生しない方法をご存知の方、
ご教授下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/08/26 08:37

このままではコードが見れないので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
masa_81

2019/08/26 09:04

y_waiwaiさんご指摘ありがとう御座います。修正いたしました。
y_waiwai

2019/08/26 09:06

ありがとうございます で、そこでデタラメでもなにかパスワード設定して実行したらどうなりますか?
masa_81

2019/08/26 09:27 編集

でたらめのパスワード結果です(誤りあったので修正しました。18:26)。 Traceback (most recent call last): File "/home/modify_zipfiles_transfer.py", line 46, in <module> ftp.login("administrator","hhhhh") File "/usr/lib64/python3.6/ftplib.py", line 418, in login resp = self.sendcmd('USER ' + user) File "/usr/lib64/python3.6/ftplib.py", line 272, in sendcmd self.putcmd(cmd) File "/usr/lib64/python3.6/ftplib.py", line 199, in putcmd self.putline(line) File "/usr/lib64/python3.6/ftplib.py", line 194, in putline self.sock.sendall(line.encode(self.encoding)) AttributeError: 'NoneType' object has no attribute 'sendall'
masa_81

2019/08/26 23:20

CLのFTP側ログでDataChannelOpened通信ポートが、 Linuxサーバ側のFWが開放されていない点が確認出来ました。 大変ご迷惑お掛けしました。 この件は一旦解決とさせていただきます。
guest

回答1

0

自己解決

Windows Embedded Standard 7上のIIS(Version7.5)で立てたFTPサーバのログを取得し、
FTPポート42000のリクエストに対し別ポートで、DataChannelOpened、DataChannelClosed を確認した。
Linuxサーバ側では、対応ポートを開放し疎通確認を行った。

投稿2019/08/26 23:40

masa_81

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問