diff --git a/modbus/enum_all.py b/modbus/enum_all.py index 72f63d9..ee38197 100644 --- a/modbus/enum_all.py +++ b/modbus/enum_all.py @@ -127,11 +127,15 @@ my_parser.add_argument('-p','--port', action='store', type=int,required=False, help='Port Number', default=502) my_parser.add_argument('-r','--range', action='store', type=int,required=False, default=[1-500],dest='range',help='Define the range. Default is 1-500',nargs=2) my_parser.add_argument('-t','--timeout', action='store', type=int,required=False, help='Timeout', default=10) +my_parser.add_argument('-ro','--read', action='store_true', required=False, help='enable read-only mode') args = my_parser.parse_args() ip_addr=args.ipaddress port=args.port +if args.read: + print("[+] read only mode enabled") + #Create workbook to save the result wb=Workbook() #Coils - valid and Data [Read and Write] @@ -139,12 +143,13 @@ print("Reading Coils Status - 0x01") coil_valid_list,coil_data_list,coil_permission_list=read_valid_registers(ip_addr,port,"coil", args.range[0], args.range[1], args.timeout) #Function Code - 0x01 -if coil_data_list: - print("Writing Coil Status - 0x05") - write_coil_valid_list,write_coil_data_list,coil_permission_list=write_single_coil_regiser(ip_addr,port,coil_valid_list,coil_permission_list) #Function Code - 0x05 +if args.read == False: + if coil_data_list: + print("Writing Coil Status - 0x05") + write_coil_valid_list,write_coil_data_list,coil_permission_list=write_single_coil_regiser(ip_addr,port,coil_valid_list,coil_permission_list) #Function Code - 0x05 -else: - print("No valid Register Found to do Write Operation") + else: + print("No valid Register Found to do Write Operation") #print_details(coil_valid_list,coil_data_list,"Read") wb=write_to_excel(wb,"Coil",coil_valid_list,coil_data_list,coil_permission_list,0) @@ -155,11 +160,13 @@ print("Reading Holding Registers - 0x03") hold_valid_list,hold_data_list,hold_permission_list=read_valid_registers(ip_addr,port,"hold", args.range[0], args.range[1], args.timeout) #Function Code - 0x03 #print_details(hold_valid_list,hold_data_list,"Read") -if hold_data_list: - print("Writing Holding Status - 0x06") - write_hold_valid_list,write_hold_data_list,hold_permission_list=write_single_hold_regiser(ip_addr,port,hold_valid_list,hold_permission_list) #Function Code - 0x06 -else: - print("No valid Register Found to do Write Operation") + +if args.read == False: + if hold_data_list: + print("Writing Holding Status - 0x06") + write_hold_valid_list,write_hold_data_list,hold_permission_list=write_single_hold_regiser(ip_addr,port,hold_valid_list,hold_permission_list) #Function Code - 0x06 + else: + print("No valid Register Found to do Write Operation") wb=write_to_excel(wb,"Holding_Register",hold_valid_list,hold_data_list,hold_permission_list,40000)