Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БДЗ.docx
Скачиваний:
15
Добавлен:
10.05.2014
Размер:
217.17 Кб
Скачать

Заключение

В данной работе требовалось написать скрипт на 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