Xin code check IP. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyenkhoadng

Thành viên hoạt động
Tham gia
15/6/11
Bài viết
179
Được thích
30
e có 1 file key bằng excel của chương trình chuyên ngành, muốn chia sẽ với ae trong ngành, nhưng để kiểm soát được số người sử dụng chương trình chia sẻ này (theo ý kiến của tác giả chia sẻ cho e) nên e muốn xin đoạn code chỉ cho phép file key excel sử dụng được 1 lần với một IP đầu tiên. nếu sử dụng lần thứ 2 cho IP khác sẽ tự xóa file excel này.
Nhờ các a trên GPE giúp.
e cảm ơn!
 
e có 1 file key bằng excel của chương trình chuyên ngành, muốn chia sẽ với ae trong ngành, nhưng để kiểm soát được số người sử dụng chương trình chia sẻ này (theo ý kiến của tác giả chia sẻ cho e) nên e muốn xin đoạn code chỉ cho phép file key excel sử dụng được 1 lần với một IP đầu tiên. nếu sử dụng lần thứ 2 cho IP khác sẽ tự xóa file excel này.
Nhờ các a trên GPE giúp.
e cảm ơn!

Có thể thí nghiệm:
- Bấm Start\Run và gõ lệnh CMD
- Trong cửa sổ CMD, gõ lệnh: IPCONFIG rồi Enter
- Để ý cửa số kết quả sẽ thấy số IP của bạn nằm trước chữ "Subnet Mask" và đằng sau dấu ":"
- Vậy ta dùng VBA, gọi lệnh IPCONFIG, lưu kết quả thành file text
- Đọc file Text, tìm chuổi đứng sau chữ "Subnet" và trước dấu ":" ---> Vậy là có ngay số IP rồi
Ẹc... Ẹc...
 
Upvote 0
Có thể thí nghiệm:
- Bấm Start\Run và gõ lệnh CMD
- Trong cửa sổ CMD, gõ lệnh: IPCONFIG rồi Enter
- Để ý cửa số kết quả sẽ thấy số IP của bạn nằm trước chữ "Subnet Mask" và đằng sau dấu ":"
- Vậy ta dùng VBA, gọi lệnh IPCONFIG, lưu kết quả thành file text
- Đọc file Text, tìm chuổi đứng sau chữ "Subnet" và trước dấu ":" ---> Vậy là có ngay số IP rồi
Ẹc... Ẹc...

e cảm ơn!
ý e là e muốn xin 1 đoạn code vba để đưa vào file excel key để chia sẻ cho các thành viên khác. làm sao để file key này chỉ hoạt động được với ip đầu tiên thôi. nếu chuyển file cho các ip khác thì sẽ ko hoạt động được.
 
Upvote 0
e cảm ơn!
ý e là e muốn xin 1 đoạn code vba để đưa vào file excel key để chia sẻ cho các thành viên khác. làm sao để file key này chỉ hoạt động được với ip đầu tiên thôi. nếu chuyển file cho các ip khác thì sẽ ko hoạt động được.

Thì tôi đang nói code VBA chứ gì đây!
Lấy ví dụ việc dùng lệnh IPCONFIG trong VBA
Mã:
Sub GetIPAddress()
  Dim txtFile As String
  txtFile = "C:\IP_Address.txt"
  With CreateObject("Wscript.Shell")
    .Run "cmd /c IPCONFIG > " & txtFile, 0, True
  End With
  CreateObject("Shell.Application").Open "" & txtFile & ""
End Sub
Xây dựng thành 1 hàm cũng dựa trên giải thuật này
Ở đây chỉ nói về việc lấy địa chỉ IP, phần việc sau đó "khóa" hay "mở" gì đó thì bạn tự làm đi ---> Sao tôi biết được bạn muốn "khóa" thế nào... và nói chung tôi cũng chẳng hứng thứ với mấy cái vụ khóa gì đo
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
Upvote 0
Thì tôi đang nói code VBA chứ gì đây!
Lấy ví dụ việc dùng lệnh IPCONFIG trong VBA
Mã:
Sub GetIPAddress()
  Dim txtFile As String
  txtFile = "C:\IP_Address.txt"
  With CreateObject("Wscript.Shell")
    .Run "cmd /c IPCONFIG > " & txtFile, 0, True
  End With
  CreateObject("Shell.Application").Open "" & txtFile & ""
End Sub
Xây dựng thành 1 hàm cũng dựa trên giải thuật này
Ở đây chỉ nói về việc lấy địa chỉ IP, phần việc sau đó "khóa" hay "mở" gì đó thì bạn tự làm đi ---> Sao tôi biết được bạn muốn "khóa" thế nào... và nói chung tôi cũng chẳng hứng thứ với mấy cái vụ khóa gì đo
Ẹc... Ẹc...

tuy a ko có hứng, nhưng a thông cảm vì key này bản quền, nên khi chia sẻ e muốn sao cho giới hạn được số lượng.
a giúp e kết hợp đoạn code của a với đoạn code này cho nó hoạt động đc ko a? e làm bị báo lỗi a ah.
Mã:
Sub Kill()
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
ThisWorkbook.Close False
End Sub
 
Upvote 0
tuy a ko có hứng, nhưng a thông cảm vì key này bản quền, nên khi chia sẻ e muốn sao cho giới hạn được số lượng.
a giúp e kết hợp đoạn code của a với đoạn code này cho nó hoạt động đc ko a? e làm bị báo lỗi a ah.
Mã:
Sub Kill()
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
ThisWorkbook.Close False
End Sub

Tôi ví dụ thế này:
Mã:
Sub Auto_Open()
  Dim sKey As String, sIP As String, sChkStr1 As String, sChkStr2 As String
  Dim lCount As Long
  [COLOR=#ff0000][B]sKey = "ABCD"[/B][/COLOR]
  sIP = GetIPAddress
  With Sheet1
    lCount = .Range("H1").Value
    .Range("H1").Value = lCount + 1
    If lCount = 0 Then
      .Range("H2").Value = sKey
      .Range("H3").Value = sIP
    Else
      sChkStr1 = sKey & sIP
      sChkStr2 = .Range("H2").Value & .Range("H3").Value
      If sChkStr1 <> sChkStr2 Then
        MsgBox "Ban dang dùng 'KEY' trên máy khác!"
        KillFile
      End If
    End If
  End With
End Sub
Mã:
Sub Auto_Close()
  ThisWorkbook.Close True
End Sub
Mã:
Function GetIPAddress() As String
  Dim sComm As String, tmp As String, tmpFile, Arr, sPath As String
  Dim lPos1 As Long, lPos2 As Long
  On Error Resume Next
  Application.Volatile
  With CreateObject("Scripting.FileSystemObject")
    tmpFile = .GetTempName
    sComm = "IPCONFIG >" & tmpFile
    CreateObject("Wscript.Shell").Run "cmd /c " & sComm, 0, True
    With .OpenTextFile(tmpFile, 1, , -2)
      tmp = Trim(.ReadAll)
      lPos2 = InStr(1, tmp, "Subnet")
      tmp = Mid(tmp, 1, lPos2 - 1)
      lPos1 = InStrRev(tmp, ":")
      tmp = Trim(Mid(tmp, lPos1 + 1, Len(tmp)))
      tmp = Replace(tmp, vbCrLf, "")
      .Close
    End With
  End With
  Kill tmpFile
  If tmp Like "*#*#*#*#*" Then
    GetIPAddress = tmp
  Else
    GetIPAddress = "Disconnected"
  End If
End Function
Mã:
Sub KillFile()
  Application.DisplayAlerts = False
  ThisWorkbook.ChangeFileAccess xlReadOnly
  Kill ThisWorkbook.FullName
  ThisWorkbook.Close False
End Sub
- Cho toàn bộ code vào 1 module, xong đóng và lưu file
- Mở file lại lần nữa rồi đóng lại
- Bây giờ mang file này sang máy khác test xem
-------------------
Chỉ viết theo kiểu "dở hơi" thôi chứ nói thật với bạn: Excel mà bảo mật cái giống gì
Tôi CHẤP bạn đưa lên bất cứ file Excel nào bảo mật, tôi cũng vô hiệu hóa nó 1 cách dễ dàng ---> Bạn tin không?
------------------
Code này mà xài trên Laptop thì coi như.. đi đời!
Ẹc...Ẹc....
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mong anh giúp đỡ!!

Tôi ví dụ thế này:
Mã:
Sub Auto_Open()
  Dim sKey As String, sIP As String, sChkStr1 As String, sChkStr2 As String
  Dim lCount As Long
  [COLOR=#ff0000][B]sKey = "ABCD"[/B][/COLOR]
  sIP = GetIPAddress
  With Sheet1
    lCount = .Range("H1").Value
    .Range("H1").Value = lCount + 1
    If lCount = 0 Then
      .Range("H2").Value = sKey
      .Range("H3").Value = sIP
    Else
      sChkStr1 = sKey & sIP
      sChkStr2 = .Range("H2").Value & .Range("H3").Value
      If sChkStr1 <> sChkStr2 Then
        MsgBox "Ban dang dùng 'KEY' trên máy khác!"
        KillFile
      End If
    End If
  End With
End Sub
Mã:
Sub Auto_Close()
  ThisWorkbook.Close True
End Sub
Mã:
Function GetIPAddress() As String
  Dim sComm As String, tmp As String, tmpFile, Arr, sPath As String
  Dim lPos1 As Long, lPos2 As Long
  On Error Resume Next
  Application.Volatile
  With CreateObject("Scripting.FileSystemObject")
    tmpFile = .GetTempName
    sComm = "IPCONFIG >" & tmpFile
    CreateObject("Wscript.Shell").Run "cmd /c " & sComm, 0, True
    With .OpenTextFile(tmpFile, 1, , -2)
      tmp = Trim(.ReadAll)
      lPos2 = InStr(1, tmp, "Subnet")
      tmp = Mid(tmp, 1, lPos2 - 1)
      lPos1 = InStrRev(tmp, ":")
      tmp = Trim(Mid(tmp, lPos1 + 1, Len(tmp)))
      tmp = Replace(tmp, vbCrLf, "")
      .Close
    End With
  End With
  Kill tmpFile
  If tmp Like "*#*#*#*#*" Then
    GetIPAddress = tmp
  Else
    GetIPAddress = "Disconnected"
  End If
End Function
Mã:
Sub KillFile()
  Application.DisplayAlerts = False
  ThisWorkbook.ChangeFileAccess xlReadOnly
  Kill ThisWorkbook.FullName
  ThisWorkbook.Close False
End Sub
- Cho toàn bộ code vào 1 module, xong đóng và lưu file
- Mở file lại lần nữa rồi đóng lại
- Bây giờ mang file này sang máy khác test xem
-------------------
Chỉ viết theo kiểu "dở hơi" thôi chứ nói thật với bạn: Excel mà bảo mật cái giống gì
Tôi CHẤP bạn đưa lên bất cứ file Excel nào bảo mật, tôi cũng vô hiệu hóa nó 1 cách dễ dàng ---> Bạn tin không?
------------------
Code này mà xài trên Laptop thì coi như.. đi đời!
Ẹc...Ẹc....
E chỉnh sửa, mở khóa bài này wài không được!!! Nhờ a giúp em mở khóa nhe!!
Thank you verry much!!
Các anh xem file rồi chỉ dẫn giùm!!!
 
Lần chỉnh sửa cuối:
Upvote 0
E chỉnh sửa, mở khóa bài này wài không được!!! Nhờ a giúp em mở khóa nhe!!
Thank you verry much!!

Dễ thì dùng Office Password Recovery Toolbox
Khó hơn chút thì dùng hex editor
Tất cả liên quan bạn tìm pác google nhé :)

p/s: Nhờ mod đóng giúp e topic này. e thấy ớn ớn cái vụ khóa này quá :)
 
Upvote 0
e toàn dùng lap thôi, a kết câu này thì e ... close topic sớm :|

Thì đương nhiên vậy rồi:
- Hôm nay bạn ở tại công ty, dùng Laptop xây dựng file nói trên ---> Thế là code nhớ số IP trên máy tính của bạn
- Ngày mai bạn đi uống cafe ở quán nào đó (có Wifi). Bạn mở file lên, code sẽ check và thấy IP này khác với IP hôm trước, thế là nó xóa file của bạn thôi
--------------------------
Nhờ các anh xem file rồi giải giùm em với???
File này có khóa gì đâu mà bạn bảo giúp? Mở file, Disable macro rồi cứ thế xem code thôi
 
Lần chỉnh sửa cuối:
Upvote 0
--------------------------

File này có khóa gì đâu mà bạn bảo giúp? Mở file, Disable macro rồi cứ thế xem code thôi[/QUOTE]
ndu96081631

:A mở file lên rồi thực hiện giùm e, mở đường dẫn đến file Access nó chạy xong
rồi hiện lên như z!!! a giúp giùm e!!
View attachment 93628
 
Upvote 0


:A mở file lên rồi thực hiện giùm e, mở đường dẫn đến file Access nó chạy xong
rồi hiện lên như z!!! a giúp giùm e!!
Đã xem code được rồi thì bạn tự sửa đi chứ! Sao tôi biết được
Ngoài ra: Xin nhắc bạn rằng bài viết của bạn post vào topic này là hoàn toàn không hợp lệ. Ở đây người ta đang bàn về việc lấy địa chỉ IP cơ mà
 
Upvote 0
Tôi ví dụ thế này:
Mã:
Sub Auto_Open()
  Dim sKey As String, sIP As String, sChkStr1 As String, sChkStr2 As String
  Dim lCount As Long
  [COLOR=#ff0000][B]sKey = "ABCD"[/B][/COLOR]
  sIP = GetIPAddress
  With Sheet1
    lCount = .Range("H1").Value
    .Range("H1").Value = lCount + 1
    If lCount = 0 Then
      .Range("H2").Value = sKey
      .Range("H3").Value = sIP
    Else
      sChkStr1 = sKey & sIP
      sChkStr2 = .Range("H2").Value & .Range("H3").Value
      If sChkStr1 <> sChkStr2 Then
        MsgBox "Ban dang dùng 'KEY' trên máy khác!"
        KillFile
      End If
    End If
  End With
End Sub
Mã:
Sub Auto_Close()
  ThisWorkbook.Close True
End Sub
Mã:
Function GetIPAddress() As String
  Dim sComm As String, tmp As String, tmpFile, Arr, sPath As String
  Dim lPos1 As Long, lPos2 As Long
  On Error Resume Next
  Application.Volatile
  With CreateObject("Scripting.FileSystemObject")
    tmpFile = .GetTempName
    sComm = "IPCONFIG >" & tmpFile
    CreateObject("Wscript.Shell").Run "cmd /c " & sComm, 0, True
    With .OpenTextFile(tmpFile, 1, , -2)
      tmp = Trim(.ReadAll)
      lPos2 = InStr(1, tmp, "Subnet")
      tmp = Mid(tmp, 1, lPos2 - 1)
      lPos1 = InStrRev(tmp, ":")
      tmp = Trim(Mid(tmp, lPos1 + 1, Len(tmp)))
      tmp = Replace(tmp, vbCrLf, "")
      .Close
    End With
  End With
  Kill tmpFile
  If tmp Like "*#*#*#*#*" Then
    GetIPAddress = tmp
  Else
    GetIPAddress = "Disconnected"
  End If
End Function
Mã:
Sub KillFile()
  Application.DisplayAlerts = False
  ThisWorkbook.ChangeFileAccess xlReadOnly
  Kill ThisWorkbook.FullName
  ThisWorkbook.Close False
End Sub
- Cho toàn bộ code vào 1 module, xong đóng và lưu file
- Mở file lại lần nữa rồi đóng lại
- Bây giờ mang file này sang máy khác test xem
-------------------
Chỉ viết theo kiểu "dở hơi" thôi chứ nói thật với bạn: Excel mà bảo mật cái giống gì
Tôi CHẤP bạn đưa lên bất cứ file Excel nào bảo mật, tôi cũng vô hiệu hóa nó 1 cách dễ dàng ---> Bạn tin không?
------------------
Code này mà xài trên Laptop thì coi như.. đi đời!
Ẹc...Ẹc....

Lỡ lập topic hỏi rồi thì thử luôn a nhỉ :)
1. Nếu như e có 2 sub auto_open thì e có thể đặt auto_open1 và auto_open2 được ko a?
(Vì có 1 sub auto_open của đoạn key nữa)
2. sKey="ABCD" mà a tô màu đỏ là ý gì vậy a?
vì thực ra key e nói ở đây cũng là 1 macro, gọi macro này lên mới sử dụng được chương trình a ah.
Cảm ơn a!
 
Lần chỉnh sửa cuối:
Upvote 0
Lỡ lập topic hoit rồi thì thử luôn a nhỉ :)
1. Nếu như e có 2 sub auto_open thì e có thể đặt auto_open1 và auto_open2 được ko a?
(Vì có 1 sub auto_open của đoạn key nữa)
Tùy bạn, thích đặt sao thì đặt, nhưng nếu <> với tên Auto_Open thì nó sẽ không tự động chạy
Vậy nếu có 2 Sub Auto_Open1 và Auto_Open2 thì ta lại phải viết thêm 1 Sub Auto_Open nữa như vầy:
Mã:
Sub Auto_Open
  Auto_Open1
  Auto_Open2
End Sub
Mục địch để gọi 2 thằng em 1 và 2 cùng chạy

2. sKey="ABCD" mà a tô màu đỏ là ý gì vậy a?
Cảm ơn a!
Thì đó là cái Excel Key của bạn đây ---> tôi đâu biết nó là cái gì nên viết đại là "ABCD" (đã tô đỏ cho bạn chú ý)
Trong code của bạn, cái thằng Excel Key là cái gì thì cứ thế vào chổ "ABCD" ấy thôi
-------------------------
Ngoài lề chút: Xem cách bạn hỏi bài, tôi đoán bạn cũng không rành về code cho lắm? Vậy thì nghiên cứu mấy cái quỷ quái "khóa mở" làm gì cho mệt người thế chứ ---> Dù sao cũng chẳng hiệu quả gì khi code chạy trên Excel (người ta mở khóa 1 phát là xong)
 
Upvote 0
Tùy bạn, thích đặt sao thì đặt, nhưng nếu <> với tên Auto_Open thì nó sẽ không tự động chạy
Vậy nếu có 2 Sub Auto_Open1 và Auto_Open2 thì ta lại phải viết thêm 1 Sub Auto_Open nữa như vầy:
Mã:
Sub Auto_Open
  Auto_Open1
  Auto_Open2
End Sub
Mục địch để gọi 2 thằng em 1 và 2 cùng chạy


Thì đó là cái Excel Key của bạn đây ---> tôi đâu biết nó là cái gì nên viết đại là "ABCD" (đã tô đỏ cho bạn chú ý)
Trong code của bạn, cái thằng Excel Key là cái gì thì cứ thế vào chổ "ABCD" ấy thôi
-------------------------
Ngoài lề chút: Xem cách bạn hỏi bài, tôi đoán bạn cũng không rành về code cho lắm? Vậy thì nghiên cứu mấy cái quỷ quái "khóa mở" làm gì cho mệt người thế chứ ---> Dù sao cũng chẳng hiệu quả gì khi code chạy trên Excel (người ta mở khóa 1 phát là xong)

Thực chất key trong file excel cũng chỉ là 1 macro thôi a ah.
cũng
Mã:
sub auto_open ()
......
end sub
 
Upvote 0
Thì đương nhiên vậy rồi:
- Hôm nay bạn ở tại công ty, dùng Laptop xây dựng file nói trên ---> Thế là code nhớ số IP trên máy tính của bạn
- Ngày mai bạn đi uống cafe ở quán nào đó (có Wifi). Bạn mở file lên, code sẽ check và thấy IP này khác với IP hôm trước, thế là nó xóa file của bạn thôi
--------------------------

File này có khóa gì đâu mà bạn bảo giúp? Mở file, Disable macro rồi cứ thế xem code thôi

Vậy nên xây dựng đoạn code dựa vào ổ cứng của máy thì hay hơn a nhỉ?
 
Upvote 0
Vậy nên xây dựng đoạn code dựa vào ổ cứng của máy thì hay hơn a nhỉ?

Dù là dựa vào bất cứ cái gì thì khi người dùng mở file, họ Disable phát coi như.. tèo (code không chạy thì khóa cái gì) ---> Người ta cảm thấy ghét quá, người ta Alt + F11 vào xóa sạch code của làm luôn còn được nữa là
Còn việc khóa pass VBA thì... Ẹc... Ẹc... nếu bạn xem qua bài viết này:
http://www.giaiphapexcel.com/forum/...g-vba-để-xóa-vba-đc-không&p=444901#post444901
thì có thể bạn sẽ bỏ cuộc ngay lập tức ---> Bất cứ code nào khóa VBA nó cũng mở được tuốt
 
Upvote 0
Dù là dựa vào bất cứ cái gì thì khi người dùng mở file, họ Disable phát coi như.. tèo (code không chạy thì khóa cái gì) ---> Người ta cảm thấy ghét quá, người ta Alt + F11 vào xóa sạch code của làm luôn còn được nữa là
Còn việc khóa pass VBA thì... Ẹc... Ẹc... nếu bạn xem qua bài viết này:
http://www.giaiphapexcel.com/forum/showthread.php?72632-C%C3%B3-th%E1%BB%83-d%C3%B9ng-vba-%C4%91%E1%BB%83-x%C3%B3a-vba-%C4%91c-kh%C3%B4ng&p=444901#post444901
thì có thể bạn sẽ bỏ cuộc ngay lập tức ---> Bất cứ code nào khóa VBA nó cũng mở được tuốt

e vẫn biết là vậy, nhưng vẫn muốn tò mò tìm hiểu.
cảm ơn a đã giúp!

p/s: ah nhờ a giúp e nốt đoạn code bên topic http://www.giaiphapexcel.com/forum/...-thiện-file-thống-kê-thép&p=457420#post457420 được ko a?
e nhờ giúp mà đợi hồi âm lâu quá.
e cảm ơn!
Chúc a cuối tuần vui vẻ!
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom