2019年5月26日日曜日

Dockerでpython3.7とpysmbをインストールしたコンテナ(Alpine3.9ベース)を作成する

pysmbを使用して、CIFS/SMBプロトコルを使用できるプログラムを作成する事ができます。

以下のコマンドとDockerfileを使用してpython3.7とpysmbがインストールされたイメージを作成する事ができます。
docker build -t pysmb:1.0 .

Dockerfile
FROM python:3.7-alpine3.9
RUN apk --no-cache add libstdc++ \
  && apk --no-cache --virtual pydeps add gcc \
    g++ \
    python3-dev \
    musl-dev \
    cython \
  && pip install pysmb \
  && apk del --purge pydeps
CMD ["/bin/sh"]

以下のコマンドでサンプルコードを実行してIPアドレスからNetBIOSを使用してホスト名を取得します。
docker run -v `pwd`:/tmp --rm -it pysmb:1.0 /usr/local/bin/python3 /tmp/test.py

test.py
from nmb.NetBIOS import NetBIOS
import sys

remote_ip = "192.168.1.50"
srv_name=""
timeout=10 # 10 sec
bios = NetBIOS()
srv_name = bios.queryIPForName(remote_ip, timeout=timeout)
bios.close()
if srv_name is None:
  print(remote_ip + " is not found.")
else:
  print(srv_name[0] + " is found.")

0 件のコメント:

コメントを投稿