Could you write me a ruby program which reads a csv file (server log) with two columns. First column is IP address and second how many times this IP address send request to your server. I want to get as out put of the program the top 5 IP addresses with the most requests ordered desc.
Sure! Here's a simple Ruby program that does exactly that:

```ruby
require 'csv'

def top_five_ips(file_path)
  ip_counts = Hash.new(0)

  CSV.foreach(file_path, headers: false) do |row|
    ip = row[0]
    count = row[1].to_i
    ip_counts[ip] += count
  end

  sorted_ips = ip_counts.sort_by { |_ip, count| -count }

  top_five = sorted_ips[0...5]

  top_five.each do |ip, count|
    puts #{ip}: #{count} requests
  end
end

file_path = 'server_log.csv'
top_five_ips(file_path)
```

The program uses the `CSV` library to read the log file and parse each line into an IP address and a request count. It stores these counts in a hash, where the IP address is the key and the count is the value.

Once all of the IP addresses have been processed, the program sorts the hash by count in descending order and takes the first five elements to get the top 5 IP addresses.

Finally, it prints out the IP addresses and their request count in the desired format.

Note that this program assumes that the input file is properly formatted, with each line containing two values: an IP address and a count.
What if i only have a log how do i make a csv then.