- •Компьютерный практикум (офисное программирование и базы данных)
- •Содержание
- •Введение
- •1 Обзор
- •1.1 Comm View
- •1.1 Flow Scan
- •2 Теоретическое обоснование данной обработки и построения диаграмм
- •3 Практическое решение и обоснование программы
- •Заключение
- •Список использованных источников
- •Приложение а
Заключение
В данной работе требовалось написать скрипт на VBA выполняющий операции согласно индивидуальному варианту.
По посчитанным данным были построены диаграмма распределения суммы внутреннего трафика по группам, и гистограмма распределения исходящего и входящего трафиков групп по часам. Результаты получились близки к теоретическим, например, для второй группы IP-адресов 202.202.205.200 доля трафика равна 0, так как компьютер не отправляет пакеты самому себе. Для распределения по часам был отмечен характерный пик с 13:00 до 15:00, потом спад. Данные подсчета количества входящего трафика для каждого внутреннего компьютера были экспортированы в Microsoft WORD.
К недостаткам скрипта относится то, что скрипт позволяет определить трафик только для значений, расположенных в определенной структуре в файле Excel.
Список использованных источников
1. https:// www.spylog.ru – Сайт, считающий статистику посещений.
2. http://www.wikipedia.org – Энциклопедия
3. http://www.google.com/analytics бесплатный сервис, предоставляемый Google для создания детальной статистики посетителей веб-сайтов.
Приложение а
Код скрипта на VBA:
Sub bdz_main()
Dim wsht As Worksheet
For Each wsht In ActiveWorkbook.Worksheets
If wsht.Name <> "8" Then wsht.Delete
Next wsht
n = InputBox("Выполнение пунктов. 1-внутренний траф, 2-вход. и исход. траф. по гр., 3-внутр траф. сумм.,4-траф. по IP.; 5-все пункты; не предпринимать ничего -отмена")
Select Case n
Case 1
bdz_p1
Case 2
bdz_p2
Case 3
bdz_p3
Case 4
bdz_p4
Case 5
bdz_p1
bdz_p2
bdz_p3
bdz_p4
End Select
End Sub
Sub bdz_p1()
Dim i As Long
Dim NSheet As Worksheet
Dim oChart As Chart
Set NSheet = ActiveWorkbook.Worksheets.Add
NSheet.Name = "Отделы"
i = 1
a = 0
b = 0
c = 0
Do Until (Sheets("8").Cells(i, 1) = "") And (Sheets("8").Cells(i + 1, 1) = "")
If (Left(Sheets("8").Cells(i, 2), 11) = "202.202.205") And (Left(Sheets("8").Cells(i, 1), 11) = "202.202.205") Then
If CInt(Mid(Sheets("8").Cells(i, 2), 13)) < 200 Then
a = a + Sheets("8").Cells(i, 4)
ElseIf CInt(Mid(Sheets("8").Cells(i, 2), 13)) = 200 Then
b = b + Sheets("8").Cells(i, 4)
Else
c = c + Sheets("8").Cells(i, 4)
End If
End If
i = i + 1
Loop
NSheet.Cells(1, 1) = a
NSheet.Cells(1, 2) = b
NSheet.Cells(1, 3) = c
Set oChart = ActiveWorkbook.Charts.Add
oChart.SetSourceData NSheet.Range("A1:C1")
oChart.SeriesCollection(1).Name = "Распределение трафика по группам"
oChart.ChartType = xlPie
oChart.Location xlLocationAsObject, NSheet.Name
End Sub
Sub bdz_p2()
Dim i As Long
Dim a As Long, ai As Long, b As Long, bi As Long, c As Long, ci As Long
Dim NSheet As Worksheet
Dim oChart As Chart
Dim ok As Boolean
Set NSheet = ActiveWorkbook.Worksheets.Add
NSheet.Name = "Загрузка канала"
i = 4
k = 0
a = 0
ai = 0
b = 0
bi = 0
c = 0
ci = 0
j = 1
Do Until (Sheets("8").Cells(i, 1) = "") And (Sheets("8").Cells(i + 1, 1) = "")
Do Until ok
If (Left(Sheets("8").Cells(i, 2), 11) = "202.202.205") And (Left(Sheets("8").Cells(i, 1), 11) <> "202.202.205") Then
If CInt(Mid(Sheets("8").Cells(i, 2), 13)) < 200 Then
a = a + Sheets("8").Cells(i, 4)
ElseIf CInt(Mid(Sheets("8").Cells(i, 2), 13)) = 200 Then
b = b + Sheets("8").Cells(i, 4)
Else
c = c + Sheets("8").Cells(i, 4)
End If
ElseIf (Left(Sheets("8").Cells(i, 2), 11) <> "202.202.205") And (Left(Sheets("8").Cells(i, 1), 11) = "202.202.205") Then
If CInt(Mid(Sheets("8").Cells(i, 1), 13)) < 200 Then
ai = ai + Sheets("8").Cells(i, 4)
ElseIf CInt(Mid(Sheets("8").Cells(i, 1), 13)) = 200 Then
bi = bi + Sheets("8").Cells(i, 4)
Else
ci = ci + Sheets("8").Cells(i, 4)
End If
End If
i = i + 1
ok = ((Sheets("8").Cells(i, 1) = "") And (Sheets("8").Cells(i + 2, 1) = ""))
If ok And (k < 4) Then
k = k + 1
ok = False
ElseIf ok Then k = 1
End If
Loop
NSheet.Cells(j, 1) = a
NSheet.Cells(j, 4) = ai
NSheet.Cells(j, 2) = b
NSheet.Cells(j, 5) = bi
NSheet.Cells(j, 3) = c
NSheet.Cells(j, 6) = ci
a = 0
ai = 0
b = 0
bi = 0
c = 0
ci = 0
j = j + 1
i = i + 4
ok = False
Loop
Set oChart = ActiveWorkbook.Charts.Add
oChart.SetSourceData NSheet.Range("A1:F24")
oChart.ChartType = xlLine
oChart.SeriesCollection(1).Name = "Первая группа Входящий трафик"
oChart.SeriesCollection(2).Name = "Вторая группа Входящий трафик"
oChart.SeriesCollection(3).Name = "Третья группа Входящий трафик"
oChart.SeriesCollection(4).Name = "Первая группа Исходящий трафик"
oChart.SeriesCollection(5).Name = "Вторая группа Исходящий трафик"
oChart.SeriesCollection(6).Name = "Третья группа Исходящий трафик"
oChart.Location xlLocationAsObject, NSheet.Name
End Sub
Sub bdz_p3()
Dim NSheet As Worksheet
Dim AppW As Word.Application
Set NSheet = ActiveWorkbook.Sheets.Add
NSheet.Name = "Компьютеры"
i = 1
j = 1
Do Until (Sheets("8").Cells(i, 1) = "") And (Sheets("8").Cells(i + 1, 1) = "")
If (Left(Sheets("8").Cells(i, 2), 11) = "202.202.205") And (Left(Sheets("8").Cells(i, 1), 11) <> "202.202.205") Then
k = 1
ok = False
Do Until (k = j) Or ok
ok = NSheet.Cells(k, 1) = Sheets("8").Cells(i, 2)
If ok Then
NSheet.Cells(k, 2) = NSheet.Cells(k, 2) + Sheets("8").Cells(i, 4)
End If
k = k + 1
Loop
If Not ok Then
NSheet.Cells(j, 1) = Sheets("8").Cells(i, 2)
NSheet.Cells(j, 2) = Sheets("8").Cells(i, 4)
j = j + 1
End If
End If
i = i + 1
Loop
Set AppW = CreateObject("Word.Application")
AppW.Visible = True
AppW.Documents.Add
NSheet.Range("A1:B" + CStr(j - 1)).Copy
AppW.Selection.Paste
Set AppW = Nothing
End Sub
Sub bdz_p4()
Dim ip As String
Dim NSheet As Worksheet
Set NSheet = ActiveWorkbook.Worksheets.Add
NSheet.Name = "Поиск"
ip = InputBox("Введите ip адрес")
NSheet.Cells(1, 1) = "Трафик для компьютера:"
NSheet.Cells(2, 1) = ip
NSheet.Cells(3, 1) = "IP"
NSheet.Cells(3, 2) = "Объём, байт"
i = 1
j = 4
Do Until (Sheets("8").Cells(i, 1) = "") And (Sheets("8").Cells(i + 1, 1) = "")
If (Sheets("8").Cells(i, 2) = ip) And (Left(Sheets("8").Cells(i, 1), 11) <> "202.202.205") Then
NSheet.Cells(j, 1) = Sheets("8").Cells(i, 1)
NSheet.Cells(j, 2) = Sheets("8").Cells(i, 4)
j = j + 1
End If
i = i + 1
Loop
End Sub