วันเสาร์ที่ 12 สิงหาคม พ.ศ. 2566

Scan Ip ง่ายๆ ด้วย shell,python

 ในเครื่องจิ๋วๆ อาจจะไม่มี Tool อะไร มาก ใช้ shell

#!/bin/sh

echo "Scanning network 192.168.1.1/24"

for i in $(seq 1 254); do

  host="192.168.1.$i"

  ping -c 1 -t 100 $host > /dev/null 2>&1

  if [ $? -eq 0 ]; then

    echo "$host is up"

  fi

done

echo "Scan complete"

ใน Windows ใช้ .bat
@echo off
echo Scanning network 192.168.1.1/24

for /l %%i in (1,1,254) do (
  ping -n 1 -w 100 192.168.1.%%i > nul
  if %errorlevel% equ 0 echo 192.168.1.%%i is up
)

echo Scan complete

ที่จะลงได้ ใช้ python อาจจะง่ายสุด

from multiprocessing.dummy import Pool

import subprocess


def ping(host):

    command = ['ping', '-c', '1', '-t', '100', host]  # 100 ms timeout

    if subprocess.call(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0:

        print(host, 'is up')


def scan_host(i):

    host = '192.168.1.' + str(i)

    ping(host)


def scan_network(network):

    print('Scanning network', network)

    pool = Pool(50)  # 50 concurrent threads

    pool.map(scan_host, range(1, 255))

    pool.close()

    pool.join()


scan_network('192.168.1.1/24')


วันจันทร์ที่ 7 สิงหาคม พ.ศ. 2566

ให้ Ubuntu autologin และ run โปรแกรมเมื่อเริ่ม

 Ubuntu มี Autologin ที่ Setting->user และ Autologin-> on

ถ้าต้องการ Startup ให้ ไปที่ Startup App และ เพิ่ม Shell ในการ start up

โดยให้ เป้น .sh

การป้องกันไม่ให้ โปรแกรม ปิดหน้าจอ ไปที่ Brightness and Sleep และ set เป็น never และ

ไม่ require password 

สำหรับ การ startup ต้องการ Delay เพื่อเปิด Service บางอย่าง ก่อน ต้อง Delay 10 วินาที

bash (sleep 10 && /<โปรแกรม>.sh)


วันพุธที่ 28 มิถุนายน พ.ศ. 2566

การ ต่อ Serial max232 กับ Raspberry pi/Jetson Nano

Serial rs232 การมี voltage เป็น +/- ไม่ใช่ Serial TTL เป็น 0-5 V การต่อมี 2 วิธี ใช้ USB->RS232 หรือ ใช้ ต่อ Pin UART TX RX ของ Raspberry Pi/ Jetson Nano  โดย Board Max232




วิธีการต่อ โดยใน Max232     

หัวต่อแบบนี้จะเป็นหัว ต่อ ที่สลับสาย แล้ว ให้ต่อ ตรง กับ หัวตัวเมีย ของ Serial PC ได้

ต่อขากับ Raspberry 

  • GND connects to Pin 6.
  • RX connects to Pin 10. GPIO 15
  • TX connects to Pin 8. GPIO 14
  • VCC connects to Pin 1. use 3.3 V

ต้องแก้ใน OS เพื่อเปิด /dev/serial0

1. sudo vi /boot/config.txt 
   เพิ่ม enable_uart=1
2. ไม่ใช้ console ใช้ serial 
   sudo systemctl stop serial-getty@ttyS0.service
  sudo systemctl disable serial-getty@ttyS0.service
และ sudo vi /boot/cmdline.txt 
 ตัด console=serial0,115200 แล้ว save



raspberrypi = /dev/serial0
jetson nano = /dev/ttyTHS1

pc dos ใช้ COM2 

วันอาทิตย์ที่ 18 มิถุนายน พ.ศ. 2566

ติดตั้ง opencv บน Raspberry pi และ Samba share folder

 Raspberry pi

sudo apt-get --allow-releaseinfo-change update 

sudo apt-get upgrade


pip install numpy

pip3 install numpy


sudo apt-get install -y libhdf5-dev libhdf5-serial-dev python3-pyqt5 libatlas-base-dev

pip install opencv-contrib-python==4.0.0.10


เวลาลงจะมี ขึ้น Vi agreement ให้กด q


ทดสอบ opencv



# define a video capture object

vid = cv2.VideoCapture(0)

  

while(True):

      

    # Capture the video frame

    # by frame

    ret, frame = vid.read()

# Display the resulting frame

    cv2.imshow('frame', frame)

      

    # the 'q' button is set as the

    # quitting button you may use any

    # desired button of your choice

    if cv2.waitKey(1) & 0xFF == ord('q'):

        break

  

# After the loop release the cap object

vid.release()

# Destroy all the windows

cv2.destroyAllWindows()







Install samba share folder

sudo apt-get install samba samba-common-bin

sudo chmod 777 /etc/samba/smb.conf

—add ลงใน smb.conf

[Home]
comment=Raspberry Pi Share
path=/home/pi
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes


--- จบแล้ว แก้ permission ของ Folder

sudo pcmanfm

—right click at home/pi "anyone"


Reboot


วันจันทร์ที่ 27 มีนาคม พ.ศ. 2566

การใช้ code2flow กับ javascript

 Code2flow เป็นโปรแกรมสร้าง Call diagram ที่ดูดี ได้ทั้ง python และ javascript

วิธีลง ลง Python ก่อน ต้อง version 3 ใช้ pip หรือ pip3

sudo pip install code2flow 

sudo pip install acorn

แต่ต้องแก้ใน install site-packages ของ code2flow ที่ javascript.py บรรทัดที่ 250

ตัด ต้ว validate ของ การลง acorn ออกจะ run ได้ 

วิธีใช้ 

code2flow <javascript.js> --output output.png

จะได้ output.png ออกมา





วันศุกร์ที่ 24 มีนาคม พ.ศ. 2566

แก้ปัญหา iis nodejs google login rewrite

 กรณี rewrite ในการ login google ไปที่ nodejs localhost:3333 

กรณี Rewrite ต้องไม่ลืมว่า google callback จะไม่ได้ ให้แก้ที่ rewrite config ด้วย

<rule name="ReverseProxyInboundRule1" stopProcessing="true">

                    <match url="/o/(.*)" />

                    <action type="Rewrite" url="https://accounts.google.com/o/{R:1}" />

                    <serverVariables>

                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="HTTP_ACCEPT_ENCODING" />

  <set name="HTTP_ACCEPT_ENCODING" value="" />

                    </serverVariables>

                </rule>

iis redirect http ไป https

 ต้องการ redirect จาก http://abc.com หรือ http://www.abc.com ไป https://www.abc.com

ให้เพิ่ม binding port abc.com, www.abc.com port 80 แต่ต้องมี https port 433 ก่อน(ต้องลง SSL ก่อน)

เปิด IIS Manager

ให้ไปแก้ที่ SSL Setting กด Require SSL


และไปแก้ที่ Error Pages แก้ ที่ 403


เป็นการบังคับให้ error และ Redirect ไปที่ https