1. VisualBasic / Говнокод #718

    −334

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    DECLARE FUNCTION ping$ (host$)
    TYPE HostData
      ip AS STRING * 15
      nm AS STRING * 15
      mac AS STRING * 16
    END TYPE
    DIM host(255) AS HostData
    
    CLS
    
    FOR i = 1 TO 255
     k$ = INKEY$: IF k$ = CHR$(27) THEN EXIT FOR
     s$ = "192.168.54." + MID$(STR$(i), 2)
     CLS
     SHELL "ping " + s$ + " -n 1 -w 300"
     IF SCREEN(4, 1) = ASC("О") THEN k = k + 1: host(k).ip = s$
    NEXT i
    FOR i = 1 TO k
     CLS
     SHELL "nbtstat -A " + host(i).ip
     s$ = ""
     FOR n = 5 TO 19
      s$ = s$ + CHR$(SCREEN(9, n))
     NEXT n
      FOR n = 9 TO 20
      IF SCREEN(n, 5) = 32 THEN mcol% = n + 1: EXIT FOR
      NEXT n
     s$ = LTRIM$(s$)
     host(i).nm = s$
     s$ = ""
      FOR n = 19 TO 35
       s$ = s$ + CHR$(SCREEN(mcol%, n))
      NEXT n
     s$ = LTRIM$(s$)
     host(i).mac = s$
    NEXT i
    OPEN "d:\ipreport.txt" FOR OUTPUT AS #1
     FOR i = 1 TO k
      PRINT #1, host(i).ip, host(i).nm, host(i).mac
     NEXT i
    CLOSE #1
    
    FUNCTION ping$ (host$)
    flag% = 0
    CLS
    IF ln% = 0 THEN ln% = 300
    SHELL "ping 192.168.0." + host$ + " -n 1 -w " + STR$(ln%)
    FOR i = 1 TO 10
    t$ = CHR$(SCREEN(4, 42 + i))
    IF t$ = "м" OR t$ = " " THEN EXIT FOR
    sum$ = sum$ + t$
    NEXT i
    IF i > 1 THEN flag% = 1
    ping$ = sum$
    END FUNCTION

    Фрагмент говнокода 10-летней давности, написанного мною на QuickBasic 4.5

    Тулза должна доставать информацию о компах из сетки и класть в файл отчета. Делается это при помощи вызовов SHELL и последующем считывании результатов с экрана! Воистинну говноспособ, но какая изобретательность! Сам себе удивляюсь

    Форматирование сохранено.

    Запостил: guest, 16 Марта 2009

    Комментарии (3) RSS

    • FlameS:
      Шелобейсик!! :)
      Ответить
    • говноавтор:
      программа доказывает, что экран может быть не только устройством вывода, но и ввода :)
      Ответить
    • Хвалю!
      Ответить

    Добавить комментарий